TANGO: Analysis and curation of particles in cryo-electron tomography

Domain: neuroscience
Published: 2026-02-10
Editorial outcome: minor_revision

Abstract
Cryo-electron tomography (cryo-ET) enables the visualization of cellular structures in near-native environments, but its potential for spatial analysis has been underutilized due to a lack of versatile tools accommodating biological sample diversity. Available solutions often rely on case-specific or hypothesis-driven approaches, while holistic analyses remain challenging. In this work, we introduce TANGO (Twist-Aware Neighborhoods for Geometric Organization), a framework leveraging point cloud descriptors to analyze spatial arrangements of particles, such as macromolecular complexes, in cryo-ET. By encoding relative positions and orientations of particles as twist vectors, TANGO enables rotationally invariant feature extraction, including structured neighborhood occupancy, lattice topology, or angular deviations. Its modular design and user-friendly interface allow for customization of features, facilitating exploratory analyses of spatial patterns in diverse experimental datasets. With its open-source Python implementation, TANGO advances the ability to decode complex cellular architectures and their functional relationships, offering a particle data analysis tool for the cryo-ET community.

Introduction
Cryo-electron tomography (cryo-ET) provides structural insights into the landscape of cells in their close to native environment. The basic workflow consists of the acquisition of 2-dimensional (2D) images of a frozen specimen at different tilt angles that are subsequently used for the reconstruction of a 3-dimensional (3D) volume called a tomogram.

To gain access to high-resolution information, cryo-ET is often used in combination with subtomogram averaging (STA). STA is based on finding a common alignment among instances of the same cellular feature, such as macromolecular complexes or membranes. Averaging of the aligned instances (“particles”) reduces the anisotropy of the resolution and improves the signal-to-noise ratio (SNR), resulting in a structure that can presently reach resolution below 5 Å1.

However, the range of information obtained by STA extends beyond high-resolution structures. It also provides positions and orientations of the particles of interest, allowing for analysis of their spatial relations to each other and to other cellular features. Such spatial information offers insight into cells, which can be understood as being organized into functional modules: groups of molecules or molecular complexes that carry out specific tasks2. These modules do not act in isolation; their coordinated behavior gives rise to the overall molecular sociology of the cell. A key challenge in understanding such cooperation lies in identifying recurring patterns of molecular associations that underlie complex cellular processes. In this context, spatial analysis enhances our understanding of the cellular ultrastructure and can result in broader insights into cellular organization than structural analysis alone3–7.

In practice, such spatial analyses rely on particle lists that record the positions and orientations of subunits or complexes. These lists can be generated in different ways: historically by manual picking or oversampling of underlying surfaces, and more recently by automated methods such as 3D template matching (TM)8–10 or deep learning approaches11,12. Each strategy has its trade-offs: manual picking is laborious but yields relatively clean lists with known affiliations, whereas TM and deep learning can produce more complete lists but at the cost of high false-positive rates and the loss of explicit affiliation to the underlying object. By affiliation, we mean the assignment of each particle to the larger structure it belongs to (e.g., assigning a subunit to its nuclear pore complex or to a particular microtubule), which is crucial for quantitative analysis of these assemblies. Classification can be used to remove false positives, but this is computationally expensive and does not restore lost affiliation information.

Despite recent advances in STA and particle picking, the tools to exploit particle lists for systematic spatial analysis remain limited to specialized scripts and hypothesis-driven solutions3,6. A notable exception is presented by work on statistical particle pattern analysis13, which aims at the quantitative description of particle clustering based solely on their positions. As for specialized tools, Jiang et al.14 present a package that is based on the clustering of both relative positions and orientations. While this approach is related to the one presented in our study, it is specific to the study of polyribosomes. To our knowledge, there are no tools for the holistic spatial analysis of particles that are not tailored to a specific use case. This work aims to close this gap by providing a framework based on point cloud descriptors (PCDs)15. Point clouds are discrete sets of points in space, such as 3D coordinates from scanning methods that describe shapes16,17. They can represent, for example, the positions of atoms18,19, or be sampled from abstract spaces that constitute virus genomes20. The idea of PCDs is to characterize each point by the geometric properties of its local neighborhood and to encode this information in a feature vector. Practically, one first defines the local neighborhood, referred to as the support - often a simple sphere or cube of a given size. For each query point, all points within its support are collected and used to compute the feature vector, or descriptor. Features can be simple, such as the number of points within the support. They can also be more elaborate, such as descriptors based on spherical harmonics21, capturing properties like surface curvature22, neighbor distribution, or orientations23 in a compact way.

Such feature encoding enables reliable and efficient tasks such as object recognition, pattern matching, registration, surface segmentation, and similarity comparison24–26. A simple example is the signature of histograms of orientations (SHOT)27, which captures local surface shape and orientation by computing histograms of normal vectors around a point on a spherical support. These histograms form feature vectors that can be used for pattern matching, either by searching for a specific signature or by clustering similar signatures. In structural biology, point cloud descriptors have been used to analyze protein surfaces and molecular docking through point cloud registration28.

In cryo-ET, the positions of particles can be considered to form a point cloud. However, what sets these particles apart from classical point clouds is the additional information on particle orientation. In general, point clouds do not need to carry orientation information; if provided, the closest equivalent is the surface normal vectors defined by the underlying surface. In contrast, particles in cryo-ET possess full rotational information and their relative orientations can thus be examined among all particles within a support. Moreover, each rotation specifies a canonical reference orientation. By aligning query particles with this reference, one can ensure that the features computed from the respective supports do not change when the entire system is rotated. In this way, the features are rotationally invariant.

In this work, we explore the potential of PCDs for holistic analyses of particles from cryo-ET. We calculate so-called twist vectors, which encode relative positions and relative orientations of pairs of particles29 in an inherently rotationally invariant manner. They build the core of the proposed framework called TANGO - Twist-Aware Neighborhoods for Geometric Organization. For each particle, twist vectors are computed for all neighbors within a fixed radius around that particle. These vectors form the basis that allows for a straightforward derivation of other features such as neighborhood occupancy, lattice geometry, angular deviations, and more. The choice of features to be calculated can be chosen in a project-dependent manner. As we show in this work, the outcome of the feature vector computation offers multiple possibilities for further data analysis. First, the results can be used directly to describe particles in a quantitative or statistical manner, for example to determine the presence of cyclical symmetry. Vectors can be further clustered to find affiliations of particles to their underlying objects, as demonstrated on microtubules (MTs) and nuclear pore complexes (NPCs). Clustering can also be used to find outliers in data to either exclude them or to examine them further. We show this on immature virus-like particles (VLPs) of the Human Immunodeficiency Virus type 1 (HIV-1) CA-SP1 lattice and also on capsids of mature HIV-1, where outliers represent pentamers within the hexagonal lattices. Finally, we demonstrate how point descriptors can be used to find patterns among particles, on synthetic data as well as on experimental data.

TANGO is not only a framework, but it also comes with an open-source Python-based implementation which is further enhanced by a graphical user interface (GUI). Its modular design reflects the pipeline outlined above, starting with the computation of twist vectors on a spherical support. To ensure flexibility and support exploratory data analysis, we provide catalogs with options for different supports and features, which are efficiently computed from twist information. Beyond what these catalogs offer, TANGO facilitates the customization of descriptors and supports. The accompanying GUI includes means to visualize particle lists, supports, statistics, and clustering results, further enhancing data analysis.

Overall, the versatility of TANGO allows for a more holistic characterization of spatial arrangements of particles, offers a user-friendly interface, and will be a useful addition to data analysis and processing within the cryo-ET community.

Results
Workflow
The approach proposed in this study is based on PCDs. Going through each point in the dataset, data points with positions within a defined query point’s support are collected and used for the computation of features that describe the neighborhood’s geometric properties. The collection of features yields a feature vector for each query point, also known as a point descriptor. In our setup, point clouds are generated from particle positions, which can stem directly from particle picking or from further iterative refinement using STA. However, apart from positions in 3D space, expressed in the extrinsic coordinate system, we also consider every particle’s orientation, which refers to the rotation required to achieve a canonical orientation—the reference used in STA or particle picking. The canonical orientation can be expressed via a particle’s intrinsic coordinate frame as further explained in Supplementary Fig. 1a–d.

To use the full potential of the available particle information, and to accommodate the diversity of the analysis needed, we introduce two changes into the classical PCD workflow: First, we consider each query particle in its canonical orientation (the reference orientation) and thus rotate the respective support, i.e., the set of neighboring points, accordingly. This guarantees orientational alignment of the individual supports, ensuring rotational invariance of the descriptors that are computed in this manner. The second change is the hierarchical approach. We first compute the basic twist descriptor (see section on the twist descriptor for details) on larger spherical supports. This descriptor provides essential information on neighborhood distributions and can then be used to derive additional features based on the data and question at hand. Features can be arbitrarily combined, thereby yielding descriptors that best reflect the needs for the given data analysis. In this second step, an arbitrary support can be chosen either from the provided support catalog or custom-made as binary mask. Furthermore, twist descriptors can be used to filter out points within the support based on, for example, their angular distance from the query point. The final step of our framework is the analysis of the computed descriptor(s), which is data-dependent. This step can include quantitative or statistical characterizations of the particles’ spatial distribution, the clustering of descriptors in order to find patterns within the data, or the assignment of particles to their underlying objects. The complete workflow is depicted in Fig. 1.

Twist descriptor
A twist vector encodes the relative position and relative orientation of a query particle with a given neighbor within its support. This representation captures both directionality and distance (angular distance for orientations, Euclidean distance for positions). Relative positions are represented as vectors in the query particle’s own frame of reference, each one pointing towards the neighboring particle’s location. Relative orientations are represented as rotation axes scaled by rotation angles. The corresponding rotation encodes how the neighbor’s orientation differs once it is expressed within the query particle’s frame.

By default, twist vectors are computed within a unified frame of reference: the particle pair is shifted and rotated so that the query particle is aligned with the canonical orientation and placed at the origin of the extrinsic coordinate system. This operation preserves the relative orientation and relative position, ensuring rotational invariance for descriptors based on twist vectors. Such normalization reduces the degrees of freedom when comparing local particle neighborhoods. A full mathematical derivation of twist vectors is provided in the methods section.

The twist descriptor for a query particle comprises the set of twist vectors to all neighbors within its support, along with the distances they encode. Additional practical information, such as the orientational deviation from canonical rotation axes and the in-plane angles of query particles and their nearest neighbors, is also included in this descriptor.

Particle symmetry
The analysis of relative orientations between symmetric particles can be ambiguous. As an example, a particle showing five-fold rotational symmetry around a given axis has five different choices of rotation matrices representing the same orientation (see Fig. 2a). This range of options need to be accounted for when considering the orientational differences between two given particles of the same symmetry type. Naturally, one can consider the angular distances between all 25 possible pairs, but the computational expense would grow with more intricate types of symmetry. In our framework, we resolve this ambiguity for two classes of rotationally symmetric particles: cyclically symmetric ones (Cn-symmetry for n > 1) and those that show symmetry of a platonic solid (tetrahedron, cube, octahedron, dodecahedron, icosahedron).

Our solution is presented in the form of the angular score (see methods section for details), a normalized score that depends on the input symmetry. A notion of dissimilarity between particle orientations is computed as displacement between vertex sets of geometric representatives on which the corresponding rotations act, see Fig. 2a, b. This dissimilarity then yields the angular score for the given symmetry type by normalizing with respect to the maximum dissimilarity. Within the angular score, 0 hints at maximum angular disagreement between two particles of the same symmetry type, whereas score 1 refers to perfect orientational agreement. For example, in the case of five-fold symmetry with a central angle of 72°, a score of 0 would correspond to a displacement of 36°.

Implementation
The presented framework is implemented in Python and embedded in the cryoCAT toolbox30 under the module tango.py. This module contains classes for particles, the basic twist descriptor and its derived descriptor classes, features, supports, and filters, as well as catalogs for the latter three. Additional analysis and visualization functionalities tailored to descriptor objects are also provided. A detailed description of the classes is given in the methods section, and an overview of the tool’s structure is shown in Supplementary Fig. 2.

The core concept is the twist descriptor, which is initially defined on a spherical support. It is computed from one or more particle lists and a specified support radius. Particle lists from common software packages such as TOM/AV331,32, Relion (version 3 and later)33, STOPGAP10, and Dynamo34 can be used as input. It is assumed that particle lists do not contain overlapping particles and thus that each entry in the dataset represents a unique particle. This condition can be ensured as a preprocessing step using cryoCAT’s distance-based or shape-based cleaning functions35.

For the subsequent analysis, a range of supports such as spheres, cylinders, ellipsoids, cones, and tori are provided. In addition, custom binary masks of arbitrary shape can be used. Supports can be refined further by filters that remove particles outside of user-defined property ranges, for example, based on angular distance. From these reduced sets, feature class computes quantitative attributes for each query particle. Unlike the basic twist descriptor, which may contain different numbers of entries for each query point, features always return vectors of equal length, enabling their combination into new, custom descriptors. Custom descriptors can be built from twist descriptors, a set of desired features, and optionally from a different support and filters. Custom descriptors can be easily extended by adding new features (or reduced by removing some of them) and can also be merged with other descriptors computed on different supports. Besides the custom descriptor, additional descriptors are provided: the piecewise linear (PL) descriptor, the α-descriptor, and SHOT (see Supplementary Sections 2.1, 2.2, 2.3 for more details).

Since TANGO is Python-based, it can be used within scripts, interactive Python environments, or Jupyter Notebooks. To make it more user-friendly, we implemented a GUI using the Plotly Dash library36. Dash enables interactive data visualization in web browsers and greatly facilitates descriptor analyses by allowing users to easily explored different supports, filters, and features.

Finally, given the versatility of cryo-ET data, we implemented TANGO to allow users to easily extend it with their own features, supports, and filters. TANGO’s modular structure ensures that such additions are automatically included in the corresponding catalogs and made available in the GUI.

The full application programming interface (API) documentation, tutorials, and an instructional video for the GUI are provided as part of the cryoCAT documentation.

Use cases
To demonstrate TANGO's capabilities, several use cases are presented. The parameters defining the supports were chosen based on the physical properties of the underlying data, which were obtained from nearest-neighbor analyses. A complete list of the applied parameters is provided in Supplementary Table 1.

Object affiliation and cleaning. Particle lists often encode the positions of subunits within larger complexes such as nuclear pore complexes (NPCs), αβ-tubulin dimers forming microtubules (MTs), or subunits forming viral lattices (e.g. the immature HIV-1 CA-SP1 lattice). Strategies for generating such lists manually, while laborious, typically yield relatively clean data with clear affiliations to their parent structures, enabling straightforward downstream analyses such as measuring NPC radii37. By contrast, modern approaches such as 3D template matching (TM)8–10 and deep learning11,12 involve a trade-off: using permissive thresholds lead to more complete particle sets but with higher false-positive rates, while more strict thresholds reduce false positives but result in incomplete datasets. In both cases, explicit affiliation information is lacking. Here, we demonstrate how TANGO can address these issues by recovering affiliations directly from positional and orientational information while simultaneously cleaning particle lists. In the three use cases discussed below - NPCs, MTs, and VLPs - all necessary information was contained in the twist descriptor, so no additional computation was required.

Affiliation information can be derived directly from twist descriptors, since they encode nearest-neighbor relationships that can be interpreted as a graph. In this graph, particles are nodes and two particles are connected via an edge if there is a twist vector associated with the pair. A twist descriptor thus decomposes into connected components, where nodes from one component are affiliated. We refer to this topological way of affiliating particles as proximity clustering.

Treating twist descriptors as graphs also provides a strategy for cleaning: pairs of particles (edges in the graph) can be removed based on the expected underlying geometry. In the cases considered here, this means requiring the twist descriptor to reflect that NPCs are embedded in the nuclear envelope, as well as cylinders (MTs) and spheres (VLPs) being locally flat, meaning around each point, they can be approximated by a (tangent) plane within a small radius around that point. Cylindrical supports were chosen in all three cases to capture pairs of particles that were close to the same plane. The cylinder’s axis was aligned with a normal vector to the respective surface. Further pairs were excluded from the twist descriptor by restricting the allowed angular distance (reflecting the eightfold rotational symmetry of NPCs), or by requiring that the axis of their relative rotation remained close to the surface normal.

To assess the performance of cleaning and affiliation, we used the F-score38, a metric that combines the rate of correctly retained particles with the penalties for false positives and false negatives, providing a single measure of how reliably the cleaned and affiliated particle sets reflect the ground truth (see methods section for more details).

For the NPC structure, we worked with a dataset from ref. 6 (Fig. 3a). The input particle list was generated from GAPSTOP™ score maps from the original study, produced with a template containing a subunit of the NPC’s cytoplasmic ring (CR). In total, 93,665 asymmetric subunit (SU) candidates were obtained from these score maps, which then needed to be cleaned and affiliated to their respective NPCs. A manually curated particle list containing 1960 SUs from 322 NPCs served as ground truth for the subsequent analysis. The list included the affiliations of each SU to its respective NPC.

As a preprocessing step, the particle list was cleaned from spatial duplicates by applying shape-mask cleaning. This reduced the number of particles to 63,187. Next, the particles were shifted in the intrinsic -x-direction by a distance close to the NPC radius (Fig. 3b). This shift ensured that SUs belonging to the same NPC clustered more closely, which allowed for smaller spherical supports, reduced dense regions of false positives, and improved computational efficiency (see Supplementary Fig. 3).

The cleaned and affiliated set was then obtained using proximity clustering, which performed both tasks simultaneously by requiring at least three subunits to form an NPC. This reduced the number of particles from 63,187 candidates to 2341 affiliated SUs. The affiliation achieved a median F-score of 0.967 across all tomograms, highlighting the high precision of positive assignment. An example of the cleaning is shown in Fig. 3c. Small examples of false positives and false negatives can be observed. By visual inspection, two particles in this example were correctly affiliated despite not being part of the ground truth.

In the case of VLPs of immature HIV-1, we focused on the corresponding CA-SP1 SUs from the EMPIAR-10277 dataset (see Fig. 3d). Unlike in the case of NPCs, the particle list we used was already clean in the sense that it did not contain any false positives, yet the particles were lacking affiliation information. The latter was determined using the proximity clustering. The affiliation reached a median F-score of 0.97 taken over all 32 VLPs in the dataset (see Fig. 3e, f). The lowest F-score of 0.48 was achieved for a VLP for which 139 true positives were found, versus 300 false negatives. This discrepancy could be improved by choosing larger support radii to account for the data sparsity of individual VLPs. For this use case, however, we decided on homogeneous, robust parameters that would benefit most VLPs.

A similar approach of computing affiliations was applied to MTs (see Fig. 3g). A tomogram with two MTs (from 9) was used to generate a score map, following the original study that employed a short MT segment as the template. We extracted a particle list of αβ-tubulin dimers using an absolute CCC-score threshold of 0.015 to ensure completeness of the data. The extracted positions can be seen in Fig. 3h.

In total, the particle list contained 6997 particles. After computing and filtering the twist descriptor, proximity clustering yielded two groups of particles with 1174 and 974 members, respectively. Due to the lack of ground truth, the results were first evaluated based on visual inspection (see Fig. 3i) which showed that the affiliations were correct and that all obvious false positives had been removed.

To further validate the procedure, we also performed STA on three datasets: the combined particle set, the cleaned list, and the list of removed particles. Initial averages were generated from TM positions and refined through 10 iterations of alignment (see Supplementary Fig. 4 and Supplementary Table 2). As expected, all initial averages resembled the template to some degree. For the combined and removed lists, however, the maps degraded with further alignment, while the cleaned list improved, supporting the effectiveness of the cleaning. Some resemblance to microtubules remained in both the combined and removed sets; in the former case this is expected due to the presence of true particles in the list, while in the latter case it may indicate that a small fraction of true particles were marked as false negatives.

Lattices. Pleomorphic assemblies such as protein filaments, coated vesicles, or some viral capsids are omnipresent in biological samples. They are built as non-covalent compounds from numerous independently synthesized molecules that serve as SUs of the final lattice, which covers the underlying geometry39. Analyzing regular, repeating patterns in such a structure is relatively straightforward. In contrast, spotting irregularities or deviations from this order can be more challenging, yet these are often the structures that are worth exploring in more detail.

Mature HIV-1 capsids. Here, we demonstrate TANGO’s ability to identify pentamers on the hexagonal lattice forming capsids of mature HIV-16. The mature HIV-1 capsid has a conical shape containing in total 12 pentamers located at regions of high curvature, hidden among hexameric SUs that form the rest of the lattice40, see Fig. 4a.

The input particle list contained positions of both hexamers (1510 in total) and pentamers (57 in total) for 11 capsids. Note that all capsids were incomplete, i.e., were missing a certain number of both hexameric and pentameric SUs. The incompleteness likely resulted from technical limitations, although a biological contribution cannot be fully excluded.

At first, all eleven capsids were considered, for which the initial support was truncated to focus on the first shell only. A visualization of the notion of shells and of central angles is shown in Fig. 4b. For the truncated support, the α-complex descriptor was computed. This provided various statistics such as the number of edges, the median and STD of the central angles (where the expected value is 60° for regular flat hexagons), Euler characteristics, and the link type (see Supplementary Section 2 for an explanation of these additional features). Among these options, a subset of significant features was determined using principal component analysis (PCA). Applying PCA to all computed features revealed that to explain more than 95% of variance, it suffices to consider the median of central angles, their STD, and the number of vertices. Using those three features we identified pentamers in 70.8% of cases. Figure 4c shows the results per capsid.

Secondly, a single lattice’s regularity was investigated using the angular score σ V (see Eq. 12). Over a given shell, the angular score was computed between the central particle and every particle in that current shell. When the rotational symmetry of lattice particles is unknown, the angular score can be computed under the assumption of Cn-symmetry for a range of n values. In the present case (Fig. 4d; Supplementary Table 3), the lattice shows the strongest signal for C6-symmetry, so the corresponding angular score was added to the twist descriptor and used for subsequent analysis. Once the symmetry is established, lattice regularity can be assessed by tracking the mean angular score over shells of increasing radii. As shown in Fig. 4e, the hexameric lattice exhibit the highest degree of regularity in the first shell around each particle, which gradually decreases with distance, likely reflecting the capsid’s curvature.

Immature HIV virus-like particles. A similar analysis was performed for the VLPs of immature HIV (same data as in the section on object affiliation and cleaning). The twist descriptor was computed, including the angular score, on spherical supports. This was followed by the analysis of individual shells. The mean angular score of the first shell around each particle shows that about two-thirds of the particles have highly regular hexagonal shells (mean angular score > 0.8; Fig. 4f). The information on angular similarity can be applied to subdivide the data into regions of different levels of angular agreement (see Fig. 4g), thus highlighting irregularities for further investigation. To test whether a low angular score indeed reflects hexamers with disrupted neighborhoods or misaligned orientations, we performed STA on five classes corresponding to different degrees of angular similarity. For a fair comparison, the number of particles in each class was reduced to the smallest occupancy, ensuring equal particle counts across classes (the full parameter setup is listed in Supplementary Table 5). Already in the initial averages, the classes with lower angular scores showed visibly disrupted densities compared to those with high scores (see Supplementary Fig. 5a). To further challenge the robustness of the classes, we randomized the in-plane angles and ran the alignment. While the highest-scoring class successfully recovered the hexamer and its surrounding hexameric lattice - even without enforcing C6-symmetry - the lower-scoring classes failed to reconstitute the structure (Supplementary Fig. 5b, c).

These results demonstrate that the angular score is a reliable indicator of lattice regularity, with lower scores reflecting structural irregularities. Such irregularities may arise from broken regions of the lattice, as shown here, or from local changes in geometry, such as alternative symmetries within an otherwise regular arrangement as shown on the mature HIV-1 capsids. This makes the score broadly applicable to detecting both defects and structural variants.

Pattern recognition. Molecular complexes in cells often interact with each other and may form recurring spatial patterns that help us better understand these interactions. Such patterns can be revealed using point descriptors: either in an exploratory way, where dimensionality reduction and clustering methods highlight trends in the data, or in a targeted way, where supports and features are tailored to specific hypotheses about expected structures.

Pattern recognition in synthetic chromatin data. To assess the ability of PCDs to uncover patterns within data, we created synthetic data simulating an arrangement of nucleosomes within chromatin. Nucleosomes can be arranged in different structures and forms, for example, di- and trinucleosomes as described in ref. 41. Such structures, together with the mononucleosome structure (EMD-63079), the canonical orientation of which is indicated in Fig. 5a, served as input for the generation of the synthetic particle data (see methods section on synthetic chromatin data for details). The resulting data consisted of six helical arrangements (with 12 particles each), 350 stacked arrangements, and 340 trinucleosomes. A total of 3200 mononucleosomes were added in varying number densities, see Fig. 5b.

This synthetic list was used as the unperturbed baseline for further analyses. To assess robustness, we further corrupted the data with varying levels of positional and orientational noise (see methods section on synthetic chromatin data). Five levels of positional noise were added, resulting in deviations up to ~0.8 nm for level 1 and up to 4 nm for level 5. Orientational noise levels were sampled up to 1, corresponding to angular deviations up to 60 degrees as indicated in Fig. 5c.

Analysis of angular distances in the initial support pointed to short angular distances which likely corresponds to stacked nucleosomes (Fig. 5d). Using cylindrical supports aligned with the intrinsic y-axis in the positive direction (Fig. 5a), the adapted twist descriptor detected 100% of stacked particles. It also classified 66.7% of trinucleosome particles as stacked—consistent with the fact that two out of three are arranged this way (Supplementary Fig. 6c) -- and 83.3% of particles belonging to the helical arrangements, reflecting that only 10 of 12 nucleosomes per the helical arrangement were captured with this approach (Supplementary Fig. 6a). Inspection showed that the two missing nucleosomes were consistently the same stacked pair with slightly larger angular distance. Only 1% of mononucleosomes were classified as stacked ones, some of which could have been part of stacked configurations.

Overall, the percentages concerning the structures of interest (stacks, trinucleosomes, helices) decreased when corrupting the list with increasing noise, while the percentage of classified mononucleosomes remained low (Fig. 5e). The highest fluctuation in quality can be observed for particles in the helical arrangements, which might be attributed to their low number. The other pattern of interest was dinucleosomes—pairs of nucleosomes connected via linker DNA, as seen in trinucleosomes (Fig. 5f). To capture such connections, we used conical supports aligned with the z-axis, which approximately corresponds to the entry and exit path of DNA. We then probed for common axes of rotation among neighboring nucleosomes, revealing dominant axes (Fig. 5g). Based on this, we defined a custom descriptor combining three features: Euclidean distance, angular distance, and deviation from the most dominant common axis. These features were clustered using k-means (Fig. 5h).

In the unperturbed data, the k-means algorithm revealed a cluster containing 100% of helix-labeled particles and all trinucleosome-labeled particles. This cluster also included 22.7% of mononucleosomes and 21.7% of stacked nucleosomes. Visual inspection of the latter two groups showed arrangements with orientations resembling dinucleosomes. However, since nucleosomes were randomly added during data generation, the exact number of dinucleosome arrangements is unknown, making it difficult to quantify the accuracy of these findings. In case of experimental data, one way forward would be to perform STA on query particles from such detected pairs using orientation-guided masks, which could help validate the results.

When noise was introduced (Fig. 5i), helix classification proved most robust, whereas trinucleosome classification dropped at positional noise levels above 4 and orientational noise levels above 0.75.

Pattern recognition in ribosome data. Ribosomes are central to protein synthesis, and recent advances in STA resolution have enabled the study of their conformational states within cells. Beyond translational states, several studies have also examined their spatial organization in the cellular context3,4,42,43. Here, we demonstrate how such observations can be addressed using point descriptors. We analyzed data from Xing et al. 4 who studied eukaryotic ribosomes (80S) in human cells under unperturbed conditions and after treatment with the active-site drug Homoharringtonine. Consequently, our input consisted of two particle lists from untreated and treated cells.

Following the initial analysis using twist descriptors, we computed SHOT descriptors for both conditions and focused our analysis on the three most frequently observed footprints in each condition (see methods section on pattern detection in ribosome data and Supplementary Fig. 7 for more details). To characterize these footprints in terms of relative orientations, we first identified their most common axis of rotation using 2D polar histograms. Next, rotations around this axis were quantified by binning angular distances into five ranges. Representative ribosome pairs from each range as well as the 2D polar histograms are shown in Fig. 6.

In all but one footprint, the most common axis of rotation was the same across conditions. The exception was the third footprint, where untreated and treated samples showed distinct preferred axes (Fig. 6c, f).

In comparison with Xing et al. 4 three configurations of pairs of ribosomes within polysomes were described: top-top (t-t), top-down (t-d), and top-up (t-u). Representatives of all three classes could be found using the exploratory approach described here, as well as classes that were not conclusively categorized (see Fig. 6). Interestingly, the mutual orientation among the pairs belonging to the bin highlighted in Fig. 6f, remarkably resembles the stalling disomes described in ref. 42. To validate our findings, STA was performed for all cases as depicted in Fig. 6. More precisely, we used the alignment from the original study to extract and directly average the pairs. Due to a low number of particles, the extraction was done on deconvolved tomograms with a binning factor of two (with pixel size 2.446 Å); no further alignment was performed. A selection of the outputs is shown in Supplementary Fig. 8. In the untreated case, strong densities surrounding an averaged ribosome pair hint at the found pair being part of polysomes, whereas in the treated condition, the averaged maps hint at secluded pairs. These findings align with the results presented by Xing et al. 4. STA of the pairs from the most occupied bin of the third footprint of the treated condition (Fig. 6f) was overlayed with the map of the stalling disome (EMD-10398) (Supplementary Fig. 9). While the overall mutual orientation of the pairs aligns well with the disome map, the resolution of the average is not sufficient to conclusively confirm that the pairs form stalling ribosomes. Nevertheless, it shows the potential of our method to find rare occurrences within data.

Methods
Mathematics of twist vectors
In mathematical terms, orientations can be described by rotation matrices ω ∈ SO(3)45, where the special orthogonal group SO(3) consist of orthogonal matrices of determinant 1:
SO(3) = {ω ∈ R3×3 | ωT = ω−1, det(ω) = 1} (1)

An object characterized by coordinates centered around the origin 0 in 3D Euclidean space R3 can thus be rotated by having a matrix ω ∈ SO(3) act on each of these coordinates. The object itself remains rigid; it is neither sheared nor scaled. By combining this action with a translation as described by a vector p ∈ R3, transporting the object so that its coordinates are centered around p, results in a rigid motion46. A graphical depiction of such a motion can be found in Supplementary Fig. 1e. In this sense, a particle can be associated with an element of the group of rigid motions (ω, p) ∈ SE(3), which, as a manifold, is the product SO(3) × R3. In matrix form, (ω, p) can be explicitly handled as
(ω p / 0 1) (2)

The idea of an extrinsic frame of reference to a canonical particle orientation has a natural equivalent in this context. Among rigid motions, there is a distinguished point 1 ∈ SE(3), the 4×4 identity matrix, which can be interpreted as a canonical particle, the one positioned at the origin of R3 equipped with the orientation 1 ∈ SO(3). By abuse of notation, 1 is used to denote the identity matrix when the dimension is implied.

The philosophy of using rigid motions and particles synonymously implies the existence of a product of particles and an inverse of particles. Biologically speaking, this is, of course, nonsensical. However, from a computational point of view, the idea of aligning supports is rooted in such operations.

The rigid motions of SE(3) act on particle lists (finite subsets of SE(3)) in the following way:
(ω, p)−1 * (ω, p) = 1 (3)
(ω1, p1)−1 * (ω2, p2) = (ω1Tω2, ω1T(p2 − p1)) (4)

Having the inverse of a query particle (ω, p) ∈ SE(3) act on a collection of particles as described in Eq. 4 is equivalent to shifting and rotating the collection so that the query particle aligns with 1, compare Eq. 3, keeping the relative positions and orientations unchanged.

The basic twist descriptor satisfies this condition in a natural way. It can be constructed by considering not only the algebraic structure of SE(3), but also its geometry, for particle data analysis.

The group of rigid motions is a smooth manifold, which implies that neighborhoods around each point x ∈ SE(3) can be linearly approximated through the tangent space TxSE(3) ≅ R647. Of special interest for us is the tangent space at the distinguished point: se(3) := T1SE(3) = T1SO(3) × R3 = so(3) × R3. The reasoning behind this can once more be traced back to the desire to align supports. Finally, the space se(3) is considered as the space of twist vectors
ξ = (0 ζz −ζy px / ζz 0 ζx py / −ζy ζx 0 pz / 0 0 0 0) ∈ se(3) (5)

Note that any twist vector ξ splits into a tangent ζ to SO(3) at 1, given by a skew-symmetric matrix, and a vector p ∈ R3. The direction ζ/||ζ|| ∈ S2 is the corresponding axis of rotation. The coordinates (ζx; ζy; ζz; px; py; pz) ∈ R6 are so-called twist coordinates29. They provide a natural way to characterize the geometric interplay between a pair of particles. Given (ωi, pi) ∈ SE(3), i = 1, 2, Eq. 4 describes their relative pose, (ω1Tω2, ω1T(p2 − p1)) =: (ω, p). The twist vector encoding the relevant information is the tangent vector at 1 pointing in the direction of (ω, p). Using the matrix logarithm log: SO(3) → so(3)48, the twist in question is then given by (log(ω), p).

Further information to be gained from these tangent vectors are their norms, which can be interpreted as geodesic distances. In the case of the positional part, this yields the Euclidean distance. For the orientational part, the geodesic distance is also known as angular distance49 and is given by
dSO(3)(ω1, ω2) = ||log(ω1Tω2)||_ (6)

where |_ denotes the 3D vector corresponding to the input skew-symmetric matrix. The overall norm of the twist vector is the product metric for SE(3).

Angular score
Given a symmetry group from the cases discussed in our framework (Cn-symmetry for n > 1, symmetry groups of any platonic solid), the underlying idea for an unambiguous way to distinguish between orientations is to consider the geometric object that is fixed by the respective symmetry group instead of the explicit symmetries themselves. Without loss of generality, each of these objects (regular n-gons in the case of Cn-symmetry, or platonic solids) can be inscribed in a unit sphere of the appropriate dimension (S1 ⊂ R2 for n-gons; S2 ⊂ R3 for platonic solids). For every class among these objects, a representative with vertices V ⊂ SN, N = 1, 2, can be chosen. As we will show later, the Cn-case is independent of this choice. However, for platonic solids, this is not the case. Then, given a particle of the respective symmetry, a choice of representative orientation ω ∈ SO(3) acts on V as ωV = {ωv | v ∈ V}. Special care is required in the Cn-case. Here, ω can be decomposed into a product of the in-plane portion and the cone-portion. The in-plane portion ωin-plane can then be projected to the group of rotations of the plane, SO(2) ≅ S1, to act on V ⊂ S1. Given any other rotation ω0 that represents the same orientation of the symmetric particle, we have ωV = ω0V, motivating the definition of a function to distinguish between the orientations of two particles of the same symmetry type V:
δV(ω1, ω2) := dH(ω1V, ω2V) (7)

where dH denotes the SN-Hausdorff distance. In the case presented here, Eq. 7 simplifies to
δV(ω1, ω2) = maxv∈V dSN(ω1v, ω2V) (8)

where dSN(·,·) denotes the great-circle distance on SN, and for a subset W ⊂ SN and a point x ∈ SN, dSN(x, W) = infw∈W dSN(x, w).

Note that δV: SO(N+1) × SO(N+1) → R, N = 1, 2, does not define a metric since positivity does not hold. Due to rotations being isometries on spheres, the SN-Hausdorff-distance dH remains unchanged under their actions, thus
δV(ω1, ω2) = δV(ωω1, ωω2) (9)

for all ω ∈ SO(N+1).

If V were to represent Cn-symmetry, commutativity of SO(2) implies that δV is independent of the choice of regular n-gon inscribed in S1:
δV(ω1, ω2) = δV(ω1ω, ω2ω) = δV(ωω1, ωω2) = δV(ω1, ω2) (10)

The situation for platonic solids can be remedied by supplying a fixed orientation to act on the given vertex set V in order for it to fit the user’s data.

To obtain a normalized angular score, consider for each symmetry type V the maximum value of δV,
mV := maxω1,ω2 ∈ SO(N+1) δV(ω1, ω2) (11)

We can thus define an angular score for particles of symmetry type V as
σV: SO(N+1) × SO(N+1) → [0, 1], σV(ω1, ω2) = 1 − δV(ω1, ω2)/mV (12)

Implementation details
The particle class contains necessary information for its processing, such as position, orientation, and symmetry as well as corresponding functionalities.

The twist descriptor class takes either an existing twist descriptor object or a particle list along with the initial support radius. The radius for the initial support can be derived from a statistical overview of nearest neighbor distances.

The support class takes in a twist descriptor object and computes an intersection between itself and the twist positions, removing the particles outside the support. Different supports, such as spheres, cylinders, ellipsoids, cones, and tori, are implemented as children of the support class and can be used in arbitrary orientations. Additionally, thanks to the canonical orientation of the support, one can use custom binary masks of any shape (specified as a 3D array within python or loaded from an MRC or EM file).

Filters are based on similar principles as supports. They operate on descriptor objects and remove particles from the support based on required properties. For instance, one can set an allowed range for the angular distance from the query particle and filter out all particles from the support outside this range.

Features take in twist descriptor objects that have potentially already been reduced by the support or filtering, if wanted, and compute attributes belonging to each query particle. Unlike for the twist descriptor, where each query particle can have different numbers of neighboring particles within its support, the outcome of any feature has to have the same number of values for each query point. This ensures that features can always be combined to form a new custom descriptor.

The custom descriptor class takes in a twist descriptor object, a list of desired features, and optionally a different support and a list of filters to apply. If provided, the support is first used to reduce the twist descriptor object, followed by filtering, and finally the specified features are computed for each query point. Descriptors can be easily extended by new features (or reduced by the removal of some of them), and they can also be merged with other descriptors that were computed on different supports. Besides the custom descriptor, additional descriptors are offered as well, see Supplementary Section 2 for more details.

The presented modularity enables an easy addition of new features, supports, and filters directly by users. Users can simply design, e.g., a new feature by inheriting the Feature class and ensuring compliance with inputs and outputs as described above. Such a feature will automatically be added to the GUI as well, thanks to the feature catalog.

The computational cost for twist descriptors is influenced by the density of particle positions and the choice of search radii. Even for high particle density, the computation is fast due to the use of simple, fast dataframe operations. Thus, analyses can easily be run locally. For user convenience, the twist descriptor can be saved into a file and loaded at a later time if needed.

F-score
The F-score is computed as follows:
F = 2TP / (2TP + FP + FN) (13)

where TP is the number of true positives, FP refers to the number of false positives, and FN to the number of false negatives.

Pattern recognition - Chromatin
Synthetic particle list. In a modular approach to generate synthetic chromatin data, maps from EMDB corresponding to some arrangements of nucleosomes were used as building blocks: helically arranged tetranucleosomes (EMD-2601), a pair of stacked nucleosomes (EMD-13365), and a trinucleosome (EMD-13363). A depiction of one particle list corresponding to each nucleosome arrangement is shown in Supplementary Fig. 6. Given these building blocks, copies of each of them were shifted and rotated at random before being assembled into an output list. To the latter, randomly generated mononucleosomes were added. In doing so, we ensured that particles did not overlap. To this end, cryoCAT’s shape-based cleaning can be applied if necessary.

Noise corruption. For analyses regarding synthetically generated data and robustness of procedures, there is an option to add noise to a given object of that class. This can be orientational noise, positional noise, or both. In order to add orientational noise to a particle’s associated rotation, a randomly generated matrix is scaled with respect to some input noise level and added to the rotation matrix associated to the particle’s orientation. Singular value decomposition ensures a resulting matrix with the characteristics of a rotation matrix. In the case of positional noise, a vector is sampled from a normal distribution centered at the origin with standard deviation (STD) given by an input noise level. This vector is then added to the particle’s position.

Dinucleosome descriptor. To identify common axes of rotation, we considered the orientational components (ζ) of the twist vectors (Eq. 5). After normalization, these vectors were mapped onto the unit sphere S2 and binned to detect the most frequent rotation axis ζ^ ∈ S2. Deviation from this axis was quantified as ζ - (ζ·ζ^)*ζ^ / ||ζ|| and incorporated as a feature of the custom descriptor.

Pattern recognition - Ribosomes
Following Xing et al., ribosome centers were shifted to the mRNA entry and exit points (Supplementary Fig. 10), yielding entry and exit particle lists for each condition. Twist descriptors were then computed using exit particles as queries and entry particles as neighbors.

The SHOT descriptor was computed as described in Supplementary Section 2.3 (see also Supplementary Fig. 11c). Spherical supports around each query particle were subdivided into six cones, yielding a set of four recurring occupancy patterns (SHOT footprints). These were sorted by frequency, starting with the cone aligned with the intrinsic y-axis of the query particle.

In the untreated dataset, the most common footprint occurred in 4968 out of 38,928 query particles, and in the treated dataset in 1554 out of 38,641.

Peer review rounds
[{"round": 1, "reviewer_comments": {"reviewer_1": "Review of “Twist and Scout: Analysis and Curation of Particles in Cryo-Electron Tomography Using TANGO” by Markus\nSchreiber and Beata Turonova\nThe Authors present a new tool for cryo-electron tomogram analysis. During the process of subtomogram averaging for high\nresolution structure determination, the position and orientation of each particle is determined. Statistical analysis of the\nrelative positions and orientations of particles can help us understand particle organization and functional attributes. While\nsuch analyses have been performed in the past, the authors build a tool that will be more broadly applicable to particles that\nmay be arranged with different behaviors or different geometries. As such, the TANGO tool imports particle position and\norientation lists from many common cryoET software packages and uses these point clouds to perform spatial analysis with\ntwist vectors. The manuscript goes through test cases that include nuclear pore complexes, immature HIV-1, microtubules,\nmature HIV-1 capsids, and synthetic chromatin data, and ribosomes. The tool can be used for cleaning an existing particle\nlist, understanding lattice structure, finding angular patterns. I think TANGO has the potential to be a useful addition to the\ncryoET toolbox. However, I found both the manuscript and the software to be not easily accessible in their current state.\n1) This manuscript is not very concise. The introduction has two verbatim repeated sentences:\n“TANGO is not only a framework, but it also comes with an open-source Python-based implementation which is further\nenhanced by a graphical user interface (GUI).”\n“The outcome of the feature vector computation offers multiple possibilities for further data analysis”\nBeyond this obvious issue, there is redundancy everywhere and not a clear, crisp, flow to any of the ideas. This makes it\nvery difficult for readers to understand that it can be a simple tool for analyzing their particle lists. Please rewrite much more\nconcisely.\n2) I was hoping to be able to test this tool and give feedback on the GUI and usability. However, I was met with several\nissues. First, Numpydoc appears to be required but is not a part of the package or listed as a dependency. Second, this\npackage doesn’t support RELION5. Given that RELION5 has substantially new tools for cryoET in comparison to RELION 4,\nand is being widely used, it seems very applicable to add this compatibility. I have some old RELION 4 star files but was\nalso unable to get those to load. Please try to fix these issues before I can thoroughly review the contents of the program.", "reviewer_2": "This manuscript by Screiber and Turonova describes TANGO (Twist-Aware Neighborhoods for Geometric Organization), a\nnovel framework for using particle positions and orientations from cryo-ET to analyze the spatial relationships between\nparticles. This frameworks starts with the calculation of twist vectors, which encode the spatial and orientational\nrelationships between pairs of particles within a given area (termed a support). The set of twist vectors within a support form\na twist descriptor, which encode the local neighborhood information around each particle. Filters can be used to remove\nparticles from descriptors; descriptors can then be used to calculate features which can be used for particle analysis.\nThe authors show several types of data analyses that can be performed using TANGO, including assigning particles to\ndiscreet objects and cleaning false positives that are inconsistent with expected features, analyses of lattices to find\nsymmetry elements or disordered regions, and pattern recognition to find repeating arrangements of tethered particles.\nOverall, I think the work describe here is of high quality and provides generalizable tools for particle analysis that fill a major\ngap in the cryo-ET field. However, the current manuscript is quite technically dense, even in the descriptions of applications,\nand I think a number of changes are necessary to make it more accessible to potential users. My comments are as follows:\nMost of the 2D diagrams and plots have line weights that are too small and difficult to read. This is essentially true of all main\nfigures except for figure 2; the dotted lines in figure 1 are virtually invisible on the printed page and require several fold\nmagnification on screens. The axes labels on Fig 1, right panel, are also so small that they are pixelated. The authors should\neither resize figures or increase line weights or font sizes to ensure legibility.\nLine 433 starts a paragraph describing “features”, but the first sentence says “Features take in twist descriptor objects… and\ncompute the features…” effectively creating a circular logic. I think a concise description of the various levels of descriptors\nwould greatly clarify the TANGO framework, perhaps in the form of a hierarchical tree or a table.\nThe term “junk particles” appears several times in the manuscript. I think a some definition of the term would make things\nclearer, e.g. are all junk particles false positives?\nFor section 3.1.1, there are several points that I find unclear. The NPC SU positions are shifted “by a distance corresponding\nto the NPC radius”. Does that effectively mean that there are now 8 overlapping points on the central axis of the NPC or are\nthey shifted to the inner radius, i.e. the inner rim of the actual pore? This is performed to make the points cluster more closely\nand enable the use of smaller spherical supports; why is this important? Isn’t this just a scaling factor on the pairwise\ndistance vectors; why would that affect clustering? Likewise, if twist vectors are pairwise between points, why does the size\nof the spherical support matter?\nThere is a description of a cylindrical support with dimensions in nm are given, but then the readers is referred to a reference\non NPC structures. I think there should at least be some justification for these specific numbers provided in the text, which\ncan be done in a sentence or two. Is 15.5nm the radius of an NPC? How that does that relate to the radial shift performed on\nthe particle data?\nSimilarly, there are very specific numbers in describing support shapes throughout, like 3.8nm for immature HIV-1 or\n2.5nm/7.3nm for microtubules. I think it’s unreasonable to expect the reader to understand the reason for these numbers\nwithout some description or explanation.\nMost of the analyses in 3.1 start with a spherical support followed by a shaped support (e.g. a cylinder). Is it not possible or\npreferred to start directly with the shaped support?\nFor 3.1.3, it is noted that ground truth is not available so the results were evaluated by visual inspection. Is the evaluation\nthat the particles appear affiliated with a given microtubule or that they seem to represent actual tubulin dimers? If the latter,\nis it possible to show subtomogram averages, e.g. of all particles, identified particles, and junk particles? Also, there appear\nto be lines of particles missing; is this something TANGO can help fill in?\nThe end of 3.2.1 makes reference to PCA. This is the only time it is mentioned in the manuscript and it is unclear what data\nis being analyzed by PCA. It reads as though several types of data are put in and the PCA reveals the importance of central\nangles, but this needs to be described in more detail.\nThe first sentence of 3.3 states “The functional modules of the cell interact within its molecular sociology”; I don’t understand\nthis statement. What are “functional modules”? Likewise, the term “interaction motifs” on line 733 needs clarification.\nThe panels in Fig 4 are not referenced in order in the text (4B, 4D, 4E, 4C, and 4G, with no references to 4A or 4F. The letter\nD is also missing in the figure.\nFigure 5E and 5I have “ratio” on the Y-axis; what values are they ratios of? Reading the text, it seems like these should\nrepresent percentages, which are not ratios. Also, the Y-axes in 5I should be the same as in 5E to show the steady false\npositive rate of stacks and single particles; at a glance they look to be at zero like in 5E.\nWhy is there a steady ~22% detection rate of additional and stacked particles (line 835)? How does such a high false\npositive rate effect analysis when the ground truth is not known?\nLines 859-860 describe that ribosome particle lists were shifted to the entry and exit sites; where rotations also applied to\nplace these sites along Cartesian axes? Is this the “intrinsic y-axis” referred to on line 876?\nIs SHOT an acronym? If so, of what?\nLine 889 – 891 refer to analyses of common distances per footprint; can this be shown as some type of plot or histogram?\nOn line 898, by “aligned between” do you mean similar/same? I think it’s unclear what the point be addressed is.\nLines 901 – 902 discuss pairs that fall into bins. How many pairs overall are there? Is 44 much bigger than 26? These\nnumbers provide me with no sense of scale, so I don’t understand what I’m supposed to be interpreting.\nLin 901 refers to a “bin marked in C”. Are “marked bins” referring the outlined rectangles? This should be noted in the figure\nlegend.\nThe paragraph starting on line 906 refers to 3 configurations of ribosomes in polysomes; can this be noted in Fig 6?\nThe histograms in Fig 6 are in radians while the models shown are annotated in degrees, so it’s difficult to relate the two. It\nmay be useful to use the same units for both.\nWhat do the colors of the models in Fig 6 indicate? I’m assuming that the models depicted are just ribosome models given\nthe orientation encoded by the angular binning and not averages like in Fig S5. This should be clarified in the figure caption.\nTo summarize, I think the work presented here is scientifically sound and will be quite useful to the cryo-ET community. The\nspatial and orientational information for each particle is a unique feature of cryo-ET data, but has typically only been\nleveraged by expert labs using ad hoc solutions. TANGO will not only open up such analyses to a broader range of users,\nthe discovery-based methods also provide new capabilities to even experienced labs. My comments above mainly deal with\nthe readability and accessibility of the manuscript; after addressing these comments I think the manuscript will be suitable for\npublication."}, "author_response": "We thank the reviewers for their critical assessment of our work and their constructive feedback.\nIn revising the manuscript, we put considerable effort into improving the overall flow and readability.\nRedundancies were removed, repeated sentences corrected, and technical detail relocated to the\nMethods section to keep the main text concise and accessible. We believe these changes make the\nmanuscript easier to follow while retaining the necessary information.\nWe would like to point out that, in addition to the revised clean version of the manuscript, we\nalso provide a version with highlighted changes. Given the extent of the revisions, this marked-up\nversion may be somewhat less useful for reading. For clarity, all line numbers and figure references\nin the responses below refer to the clean version.\nIn the following, we address the reviewers’ concerns point by point.\nReviewer 1:\n1) This manuscript is not very concise. The introduction has two verbatim repeated\nsentences: “TANGO is not only a framework, but it also comes with an open-source\nPython-based implementation which is further enhanced by a graphical user interface\n(GUI).” “The outcome of the feature vector computation offers multiple possibilities\nfor further data analysis” Beyond this obvious issue, there is redundancy everywhere\nand not a clear, crisp, flow to any of the ideas. This makes it very difficult for readers\nto understand that it can be a simple tool for analyzing their particle lists. Please\nrewrite much more concisely.\nWethankthereviewerforthishelpfulcomment. Wecarefullyrevisedthemanuscripttoimprove\nclarityandreadability. Inparticular, weremovedredundancies, eliminatedrepeatedsentences, and\nsubstantially shortened the main text up to the discussion. To improve the flow, we also moved\nmuch of the technical detail into the Methods Section, leaving the main part more concise and\naccessible.\nWhile we sincerely hope that our work will be received as a practical tool for the community,\nwe would also like to emphasize that it is more than a particle list editor. It is based on point\ndescriptors, applied here as a mathematical framework for cryo-ET that enables particle arrange-\nments to be analyzed in their structural and biological context. This extends the possibilities for\nanalysis beyond list editing alone.\n2) I was hoping to be able to test this tool and give feedback on the GUI and\nusability. However, I was met with several issues. First, Numpydoc appears to be\nrequired but is not a part of the package or listed as a dependency. Second, this\npackage doesn’t support RELION5. Given that RELION5 has substantially new tools\nfor cryoET in comparison to RELION 4, and is being widely used, it seems very\napplicable to add this compatibility. I have some old RELION 4 star files but was\nalso unable to get those to load. Please try to fix these issues before I can thoroughly\nreview the contents of the program.\nWe apologize for the inconvenience and thank the reviewer for pointing this out. The missing\ndependency and the issue with loading RELION 4 star files have now been fixed. In addition, we\nhave added support for RELION 5 and successfully tested it on the tutorial data provided by the\nauthors of RELION.\nWe would like to note, however, that the RELION 5 star file format appears to be more\ncomplex than in previous versions. For example, Warp2/M produced RELION 5 outputs that\ndiffer from the tutorial example, although both now work with our implementation. We have tried\nto accommodate such differences, but since our access to RELION 5 files is limited, we cannot\nguarantee full robustness for all possible formatting variants. That said, if users encounter issues\nloading a specific file, they are encouraged to contact us via the GitHub issues page and share the\nfile format. This will allow us to resolve the problem and further improve the software.\nReviewer 2:\nOverall, I think the work describe here is of high quality and provides generalizable\ntools for particle analysis that fill a major gap in the cryo-ET field. However, the\ncurrent manuscript is quite technically dense, even in the descriptions of applications,\nand I think a number of changes are necessary to make it more accessible to potential\nusers. My comments are as follows:\nWe thank the reviewer for their positive assessment of the quality and potential impact of\nour work. We also appreciate the emphasis on accessibility for users. In addition to the struc-\ntural changes made throughout the manuscript, we paid particular attention to simplifying the\ndescriptions of applications and clarifying the presentation of results, with the goal of making the\nframework easier to follow for a broader readership. Below, we address the reviewer’s specific\ncomments point by point.\nMost of the 2D diagrams and plots have line weights that are too small and difficult\nto read. This is essentially true of all main figures except for figure 2; the dotted\nlines in figure 1 are virtually invisible on the printed page and require several fold\nmagnification on screens. The axes labels on Fig 1, right panel, are also so small that\nthey are pixelated. The authors should either resize figures or increase line weights\nor font sizes to ensure legibility.\nWe thank the reviewer for this helpful observation. We have revised the figures to improve their\nreadability by adjusting line weights and font sizes where possible. At the same time, we followed\nthe official Nature Portfolio requirements for figure preparation, which specify relatively small font\nsizes, particularly for graphs.\nFor Figure 1, we would also like to note that the graphs are intended for illustration of the\nworkflow rather than for quantitative interpretation. The axis labels were therefore not essential,\nand to avoid distraction from the main message of the figure, we have removed them in the revised\nversion.\nLine 433 starts a paragraph describing “features”, but the first sentence says “Fea-\ntures take in twist descriptor objects... and compute the features...” effectively\ncreating a circular logic. I think a concise description of the various levels of descrip-\ntors would greatly clarify the TANGO framework, perhaps in the form of a hierarchical\ntree or a table.\nWe thank the reviewer for pointing this out. We hope that our extensive rewriting of the\nmanuscript has clarified the description of descriptors and resolved the circular logic noted in the\nprevious version. To further improve clarity, we have added a diagram that provides a compact\noverview of the framework (see Supplementary Figure 2).\nThe term “junk particles” appears several times in the manuscript. I think a some\ndefinition of the term would make things clearer, e.g. are all junk particles false\npositives?\nIn the revised manuscript, we clarified that the first occurrence of “junk particles” refers specif-\\ically to false positives. The second occurrence has been rephrased to more accurately reflect the\nresults shown in the referenced supplementary figure.\nForsection3.1.1, thereareseveralpointsthatIfindunclear. TheNPCSUpositions\nare shifted “by a distance corresponding to the NPC radius”. Does that effectively\nmean that there are now 8 overlapping points on the central axis of the NPC or\nare they shifted to the inner radius, i.e. the inner rim of the actual pore? This\nis performed to make the points cluster more closely and enable the use of smaller\nspherical supports; why is this important? Isn’t this just a scaling factor on the\npairwise distance vectors; why would that affect clustering? Likewise, if twist vectors\nare pairwise between points, why does the size of the spherical support matter?\nIn our approach, the particles were shifted along the intrinsic –x axis, but the shift was slightly\nsmaller than the expected NPC radius. This ensured that subunits belonging to the same ring\nwere brought closer together, rather than overlapping exactly. Because the shift was applied along\nthe intrinsic axes, it is not equivalent to a simple scaling operation: correctly oriented particles\ncluster more closely, while randomly oriented ones are displaced in different directions. We added\nSupplementary Figure 3 to illustrate this shift and its impact on clustering.\nRegarding the size of the spherical support: although twist descriptors are computed pairwise,\na larger support results in more pairs per query point. Since query points are analyzed based\non their neighborhood properties, an excessively large support can dilute meaningful relationships\nwith irrelevant ones. The support should therefore be chosen to capture the neighborhood relevant\nfor the task at hand. In this case, we used subunit orientations to connect particles based on\nC -symmetry, meaning the support should be large enough to include all subunits from the same\n8\nring, but not extend far beyond. Without the shift, the required support would be much larger and\nwould include many additional particles, which could obscure the common orientation signal. We\nhave clarified this motivation in the revised text, and we hope the new supplementary figure helps\nillustrate the rationale more clearly.\nThere is a description of a cylindrical support with dimensions in nm are given, but\nthen the readers is referred to a reference on NPC structures. I think there should at\nleast be some justification for these specific numbers provided in the text, which\ncan be done in a sentence or two. Is 15.5nm the radius of an NPC? How that does that\nrelate to the radial shift performed on the particle data?\nWe agree that the justification of the numbers used at different steps should be clearer. In the\nrevised version, we added depictions of all examples (NPC, HIV VLP, HIV mature capsid, and\nmicrotubule) directly in the main figures, including their physical sizes and/or relevant distances.\nTo improve the flow of the manuscript, we have also moved the detailed numerical values from the\nmain text to Supplementary Table 1, which now provides an overview of all parameters used.\nSimilarly, there are very specific numbers in describing support shapes throughout,\nlike 3.8nm for immature HIV-1 or 2.5nm/7.3nm for microtubules. I think it’s unrea-\nsonable to expect the reader to understand the reason for these numbers without some\ndescription or explanation.\nAs mentioned in our response above, we now include depictions of all examples in the main\nfigures together with their physical sizes and relevant distances, so that the rationale for these\nnumbers is clear.\nMost of the analyses in 3.1 start with a spherical support followed by a shaped\nsupport (e.g. a cylinder). Is it not possible or preferred to start directly with the\nshaped support?\nFrom a computational standpoint, spherical supports can be generated very efficiently using a\nk-d tree with a distance threshold. The use of non-spherical supports becomes efficient only once\nthe points within the support are rotationally invariant, i.e. after the canonical orientation has\nbeen established. From a data analysis perspective, spherical supports also offer flexibility, as the\ndirectionality of the data may not be known initially. While it is in theory possible to start directly\nwith another support shape, in practice this is less efficient or less practical to implement.\nFor 3.1.3, it is noted that ground truth is not available so the results were evaluated\nby visual inspection. Is the evaluation that the particles appear affiliated with a given\nmicrotubule or that they seem to represent actual tubulin dimers? If the latter,\nis it possible to show subtomogram averages, e.g. of all particles, identified particles,\nand junk particles? Also, there appear to be lines of particles missing; is this something\nTANGO can help fill in?\nWe thank the reviewer for this suggestion. We performed STA on the three lists as proposed\nand included the results in Supplementary Figure 4. The manuscript was adapted and now reads:\nTo further validate the procedure, we also performed STA on three datasets: the combined\nparticle set, the cleaned list, and the list of removed particles. Initial averages were generated\nfrom TM positions and refined through 10 iterations of alignment (see Supplementary Figure 4 and\nSupplementary Table 2. As expected, all initial averages resembled the template to some degree.\nFor the combined and removed lists, however, the maps degraded with further alignment, while the\ncleanedlistimproved, supportingtheeffectivenessofthecleaning. Someresemblancetomicrotubules\nremained in both the combined and removed sets; in the former case this is expected due to the\npresence of true particles in the list, while in the latter case it may indicate that a small fraction\nof true particles were marked as false negatives.\nRegarding the missing particles: in principle, they could be added by defining an ideal footprint\nforasubunitandthenusingtheSHOTdescriptortocompareagainstexistingparticles. Thiswould\nallow identification of subunits with different footprints and highlight where particles are missing.\nAt present, TANGO supports the comparison step, but automated addition of missing particles\nis not yet implemented in the GUI (though it would be feasible in the Python environment). We\nhope to include this functionality in the future and have noted it in the limitations section. Any\naddition of particles should be validated (e.g., by STA), since missing particles may reflect either\nlow signal (e.g., due to the missing wedge) or genuine absence in the tomograms.\nThe end of 3.2.1 makes reference to PCA. This is the only time it is mentioned\nin the manuscript and it is unclear what data is being analyzed by PCA. It reads as\nthough several types of data are put in and the PCA reveals the importance of central\nangles, but this needs to be described in more detail.\nWe revised the text to clarify that PCA was applied to the computed feature vectors in order\nto identify a significant subset of features for further analysis.\nThe first sentence of 3.3 states “The functional modules of the cell interact within\nits molecular sociology”; I don’t understand this statement. What are “functional\nmodules”? Likewise, the term “interaction motifs” on line 733 needs clarification.\nWe rephrased the sentence and due to its introductory character moved it to the introduction\nwhere it now reads “Cells can be understood as being organized into functional modules: groups\nof molecules or molecular complexes that carry out specific tasks. These modules do not act in\nisolation; their coordinated behavior gives rise to the overall molecular sociology of the cell.”\nThe panels in Fig 4 are not referenced in order in the text (4B, 4D, 4E, 4C, and\n4G, with no references to 4A or 4F. The letter D is also missing in the figure.\nThank you for pointing this out. The panel letters are now fixed, the section on the HIV capsid\nhas been restructured so that the panels are referenced in order and missing references were added.\nFigure 5E and 5I have “ratio” on the Y-axis; what values are they ratios of?\nReading the text, it seems like these should represent percentages, which are not\nratios. Also, the Y-axes in 5I should be the same as in 5E to show the steady false\npositive rate of stacks and single particles; at a glance they look to be at zero like in 5E.\nWe thank the reviewer for this pointing this out. The values shown were intended to be percentages\nrather than ratios, and we have corrected the labeling accordingly. The Y-axes in Figures 5e and\n5i have also been adjusted to ensure consistency and to clearly show the steady false positive rate\nof stacks and single particles.\nWhy is there a steady 22% detection rate of additional and stacked particles (line\n835)? How does such a high false positive rate effect analysis when the ground truth\nis not known?\nWe thank the reviewer for this comment. The steady 22% detection rate reflects nucleosomes\nthat were randomly added to the synthetic dataset. Because of this, we cannot precisely quantify\nhow much of this fraction truly corresponds to dinucleosome-like arrangements. To illustrate this,\nwe provide in Figure 1 a selection of randomly chosen pairs from this group of nucleosomes.\nIn real data, where no ground truth is available, stricter parameters (e.g., narrower conical\nsupports) would be advisable to reduce false positives. In addition, subtomogram averaging can be\napplied to the query particles of detected pairs, using masks that extend toward the neighbors, to\nassess whether the observed orientations reflect biologically meaningful structures. This strategy\nis similar to the approach we used in the ribosome analysis. We added a note on this point to the\nmain text.\nLines 859-860 describe that ribosome particle lists were shifted to the entry and\nexit sites; where rotations also applied to place these sites along Cartesian axes? Is\nthis the “intrinsic y-axis” referred to on line 876?\nThis approach followed the original study by Xing et al. (Science 2023). In that work, the\nparticles were shifted to the entry and exit sites while keeping their orientations fixed across the\nthree lists. Any additional rotation would not be meaningful, since the entry and exit points do\nnot have an orientation per se. The shift was therefore applied along the intrinsic axes of the\nribosomes. We have added Supplementary Figure 10 to illustrate this procedure, together with\nrelevant physiological details of the ribosome model used.\nIs SHOT an acronym? If so, of what?\nSHOT stands for “signature of histograms of orientations”. This is mentioned at the first\noccurrence of that acronym, but we also added this information in the supplementary information\nthat talks about this descriptor in more detail.\nLine 889 – 891 refer to analyses of common distances per footprint; can this be\nshown as some type of plot or histogram?\nWe added histograms showing distance distributions per footprint in Supplementary Figure\n7, including an explanation on the interpretation of the footprints in the caption. Furthermore,\nsome details on SHOT parameters were added to the Supplementary Figure 11 explaining extra\ndescriptors.\nOn line 898, by “aligned between” do you mean similar/same? I think it’s unclear\nwhat the point be addressed is.\nYes, the footprints were the same, and we have rephrased the text to make this explicit (now\non lines 653-656):\nIn all but one footprint, the most common axis of rotation was the same across conditions. The\nexception was the third footprint, where untreated and treated samples showed distinct preferred\naxes (Figure 6 c, f).\nLines 901 – 902 discuss pairs that fall into bins. How many pairs overall are there?\nIs 44 much bigger than 26? These numbers provide me with no sense of scale, so I\ndon’t understand what I’m supposed to be interpreting.\nTo provide a clearer sense of scale, the total number of pairs for each SHOT footprint has been\nadded to the caption and to the histograms in Figure 6. In our efforts to improve readability, these\nnumbers are no longer included in the main text.\nLine 901 refers to a “bin marked in C”. Are “marked bins” referring the outlined\nrectangles? This should be noted in the figure legend.\nYes, the markings were supposed to be the black outlines. An explanation was added to the\ncaption of Figure 6.\nThe paragraph starting on line 906 refers to 3 configurations of ribosomes in\npolysomes; can this be noted in Fig 6?\nThree representative pairs, one for each configuration, were marked as such and referenced in\nthe caption of Figure 6.\nThe histograms in Fig 6 are in radians while the models shown are annotated in\ndegrees, so it’s difficult to relate the two. It may be useful to use the same units for\nboth.\nThe data shown in the histograms corresponds to polar coordinates of axes of common rota-\ntions and are thus depicted in radians (following convention on polar histograms). The additional\nsampling refers to angular distances around these axes, which are reported in degrees for easier\ninterpretation and to match the convention used throughout the paper. In this form, angular dis-\ntance and rotation axis need not be directly linked; we have adjusted the legend of Figure 6 to\nmake this distinction clearer.\nWhat do the colors of the models in Fig 6 indicate? I’m assuming that the mod-\nels depicted are just ribosome models given the orientation encoded by the angular\nbinning and not averages like in Fig S5. This should be clarified in the figure caption.\nIn Figure 6, the colors represent different bins of angular scores, with distinct hues used to\ndistinguish between SHOT footprints. The depicted pairs are indeed based on a ribosome model\n(EMD-16721) rather than averages of the pairs. We have clarified this in the figure caption.\nTo summarize, I think the work presented here is scientifically sound and will be\nquite useful to the cryo-ET community. The spatial and orientational information for\neach particle is a unique feature of cryo-ET data, but has typically only been\nleveraged by expert labs using ad hoc solutions. TANGO will not only open up such analyses to\na broader range of users, the discovery-based methods also provide new capabilities\nto even experienced labs. My comments above mainly deal with\nthe readability and accessibilityofthemanuscript; afteraddressingthesecommentsIthinkthemanuscript\nwill be suitable for publication.\nWe thank the reviewer for the positive assessment and for recognizing the potential usefulness\nof TANGO for the cryo-ET community. We also appreciate the constructive suggestions regarding\nreadability and accessibility, which we have addressed in the revised manuscript."}, {"round": 2, "reviewer_comments": {"reviewer_2": "In this revised manuscript, I find that the authors have adequately addressed the issues raised in my initial review. Overall,\nthe text is much easier to read and the revised figures are clearer than the initial submission. I am happy to recommend this\nfor publication, but have noted two errors that need to be fixed:\n1. In Figure 5, it seems like panels C and D are swapped; i.e. the caption for C matches panel D and vice versa. This needs\nto be fixed and checked against the references in the main text.\n2. Supplementary Figure 4 refers to left and right and panels a – c. The figure only as a and b, and 3 columns, making left\nand right confusing. It appears as though the figure is transposed and the panels mislabeled."}, "author_response": "We thank the reviewer for their careful re-evaluation of our revised manuscript and for the\npositive recommendation for publication. We greatly appreciate the reviewer’s constructive\nfeedback throughout the process, which has significantly improved the clarity and quality\nof the work.\nWe are also grateful to the reviewer for spotting the remaining issues in the figure legends.\nWe have corrected the swapped panels in Figure 5 and ensured that the references in the\nmain text now match. In addition, Supplementary Figure 4 has been revised to remove the\ninconsistencies in panel labeling and orientation, and the description has been updated\naccordingly."}]

Decision letter