Systems and methods for data analysis
The method computes tessellation cells and identifies clustered data points based on density thresholds to analyze large data sets efficiently, reducing computational overhead and eliminating bias, thus enhancing data analysis.
Patent Information
- Application Number
- PCT/US2025/021316
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-25
- Filing Date
- 2025-03-25
- Publication Date
- 2025-10-02
AI Technical Summary
Existing methods for data analysis are computationally inefficient, limiting the insights that can be gleaned from large, unstructured data sets, and often require hyperparameters that introduce bias.
The method involves computing a tessellation cell for each input data point, removing unbounded cells, calculating instantaneous spatial density, identifying clustered data points based on a density threshold, and grouping them into clusters, followed by analyzing these clusters in continuous or discrete space to identify relationships, without the need for hyperparameters.
This approach reduces computational overhead and runtime, allowing for efficient analysis of complex data sets at all spatial scales with improved accuracy and eliminates bias by avoiding the use of hyperparameters.
Smart Images

Figure US2025021316_02102025_PF_FP_ABST
Abstract
Description
[0001] SYSTEMS AND METHODS FOR DATA ANALYSIS
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims benefit of priority of U.S. Provisional Application No. 63 / 569,361, filed March 25, 2024, which is incorporated by reference in its entirety.
[0004] STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
[0005] This invention was made with government support under grant / contract nos. R01HL148736 and R01HL165751 awarded by the National Institutes of Health. The government has certain rights in the invention.
[0006] BACKGROUND
[0007] Increasingly, organizations and researchers collect large amounts of data related to activities and research efforts. Often, this data is the form of multidimensional coordinates, such as location and time data, financial data, bioinformatics data, and digital image data. These large data sets may come in a variety of forms and often originate in an unstructured form that may include only a collection of data records including multidimensional coordinates.
[0008] Much information can be gleaned from analyzing such data sets. Indeed, organizations and researchers often wish to perform different types of analysis on their collected data sets to uncover relationships / clustering within the data sets to produce actionable insights. However, existing methods of data analysis can be computationally inefficient, increasing costs and limiting the insights, which can be gleaned from such data. Accordingly, improved methods for analysis data sets in a more computationally efficient manner are needed.
[0009] SUMMARY
[0010] Provided herein are methods for analysis of a data set comprising a plurality of input data points in the form of numbers or multidimensional coordinates. These methods can identify clustering within input data points at all spatial scales within the input data set and assign specific data points to specific clusters. In some aspects, methods for analysis of a data set can comprise (a) processing the plurality of input data points to define a study area; (b) computing a tessellation cell for each of the plurality of input data points; (c) removing any tessellation cells that are unbounded or lie outside of the study area; (d) computing an instantaneous spatial density at each of the plurality of input data points using the tessellation cell; (e) identifying clustered data points as those whose instantaneous spatial density exceeds an analytically defined density threshold; and (f) grouping clustered data points into individual clusters.
[0011] Methods can further comprise analyzing the clustered data points identified in step (e) or grouped in step (f) in continuous or discrete space to identify a relationship between the clustered data points.
[0012] In some aspects, the analysis can comprise generation of a labeled tessellation map for supervised machine learning applications. In other aspects, the analysis can comprise generation of discretized maps for point pattern analysis. In certain aspects, generation of the discretized maps for point pattern analysis can comprise generating an instantaneous spatial density map; and binarizing the map using the density threshold to produce a binary image mask that indicates regions of clustering for the plurality of input data points.
[0013] In some aspects, the method further comprises evaluating the map to perform data stratification based on a spatial relationship between the plurality of input data points. In certain aspects, evaluating the map identifies input data points that are proximally related to one another, regions with a target density of input data points, or a combination thereof.
[0014] In some aspects, evaluating the map comprises point pattern analysis, image processing, or another suitable data analysis method. In certain aspects, the evaluating the map comprises performing discrete nearest neighbor point pattern analysis on pairs of cluster species.
[0015] In some aspects, the discrete nearest neighbor point pattern analysis comprises (i) providing a pair of cluster species as a first binary discretized array (e.g., image mask) and a second binary discretized array (e.g., image mask); (ii) calculating a Euclidean distance transformation for the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask); (iii) calculating an observed cumulative distribution function (CDF) of nearest neighbor distances for regions of clustered points in the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask);
[0016] (iv) calculating a random cumulative distribution function (CDF) of nearest neighbor distances for the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask) from distance transformations of each image mask within the study area; and
[0017] (v) comparing the observed CDF and the random CDF to identify a degree of non-random spatial association between the pair of cluster species.
[0018] In some aspects, comparing the observed CDF and the random CDF comprises a statistical comparison between the observed CDF and the random CDF. In some aspects,
[0019] 9 comparing the observed CDF and the random CDF comprises performing a 2-sided Kolmogorov-Smirnov (KS) test to compare the observed CDF and the random CDF.
[0020] In some aspects, computing a tessellation cell for each of the plurality of input data points comprises computing a Voronoi tessellation cell for each of the plurality of input data points.
[0021] In some aspects, computing the instantaneous spatial density at each of the plurality of input data points using the tessellation cell comprises calculating a cell volume of each tessellation cell; and computing a tessellation cell density for each tessellation cell as the inverse of its cell size.
[0022] In some aspects, the density threshold is analytically defined by distribution theory, specifically by approximating the distribution of tessellation cell volumes for randomly distributed points as a 2 or 3 -parameter Gamma distribution.
[0023] In some aspects, identifying clustered data points further comprises identifying one or more ensemble clusters. In some aspects, the one or more ensemble clusters are defined as connected components of a graph data structure composed of the input data points and their tessellation cell vertices.
[0024] In some aspects, binarizing the map using the density threshold produces a binary image mask that indicates non-random regions of clustered localization.
[0025] In some aspects, computing the instantaneous spatial density at each of the plurality of input data points using the tessellation cell comprises interpolating pixel values over a hyperplane defined by coordinates at a localization position and a cell density value for each clustered data point.
[0026] In some aspects, the multidimensional coordinates comprise two or more dimensional coordinates. In some aspects, the multidimensional coordinates comprise three or more dimensional coordinates.
[0027] The methods described herein can allow for the analysis of complex data sets with improved computational efficiency. For example, the methods described herein can reduce computational overhead, runtimes, or a combination thereof, as compared to other methods of data analysis, such as methods that utilize Monte Carlo simulations to derive a random distribution for purposes of defining a density threshold. The methods described herein can also avoid / eliminate the need to define hyperparameters for clustering, eliminating a potential source of bias in data analysis.
[0028] In some aspects, the methods for analysis described herein are characterized by less than quadratic time complexity, such as nearly linear time complexity. In some aspects, the methods for analysis described herein are more computationally efficient than methods which require explicit evaluation of all inter-point distances between input points.
[0029] In some aspects, the method for analysis described herein can identify clustering within the plurality of input data points at all spatial scales contained or represented within the input data points.
[0030] Also provided herein are systems for analysis of a data set comprising a plurality of input data points in the form of numbers or multidimensional coordinates. These systems can comprise a computer, wherein the computer receives the plurality of input data points, and a processor of the computer executes computer-executable instructions stored in a memory of the computer to perform the method described herein.
[0031] BRIEF DESCRIPTION OF THE DRAWINGS
[0032] Figure 1 is a flowchart illustrating aspects of the methods and systems described herein. Figure 2 is a flowchart illustrating aspects of the methods and systems described herein. Figure 3 illustrates an example computer or computing device that can be used for some, a portion of, or all of the methods described herein.
[0033] Figure 4 shows a Voronoi clustering algorithm workflow diagram. (A) Input (observed) localizations simulated as a 2-dimensional point pattern with 1500 points within the unit square, of which 50% are the result of a Poisson point process and the remaining are the result of a Thomas point process with 12 clusters. (B) Voronoi tessellation of the observed point pattern. (C) Voronoi tessellation of the observed point pattern with cells linearly colored according to their local density, with larger, low-density cells colored black to red and smaller, high-density cells colored yellow to white. (D) Theoretical randomized localizations simulated as a 2- dimensional Poisson point pattern with 1500 points within the unit square. (E) Voronoi tessellation of the random point pattern. (F) Voronoi tessellation of the random point pattern with cells colored according to their density using the same scheme as panel C. (G) Empirical probability density functions of the tessellation cell volume for the observed (solid blue line) and random (dashed blue line) point pattens. The intersection of these distributions is used as the clustering threshold and is marked with a black dot. Points from the observed pattern with tessellation cells smaller than the threshold are considered clustered (red region) and cells larger than this are non-clustered (green region). (H) The observed point pattern with clustered points uniquely colored according to the ensemble cluster they belong to and non-clustered points colored gray. (I) Clustered tessellation cells of the observed point pattern colored according to their cluster identity using the same color scheme as panel H. (J) Raster image of cluster identity using the same color scheme as panels H and I. Each dimension was discretized into 200 pixels. (K) Raster image of the observed point pattern tessellation cell density using the same color mapping as panels C and F and the same discretization scheme as panel J. (L) The observed point pattern made 70% transparent and overlayed onto the discretized cluster mask. Clustered points and pixels are respectively colored blue and white and non-clustered points and pixels are respectively colored gray and black.
[0034] Figure 5 includes isometric views of Voronoi cluster analysis results for 3-dimensional (3D) data. (A) Simulated input data of a 3D point pattern with 1500 points within the unit cube, of which 40% are the result of a Poisson point process and the remaining are the result of a Thomas point process with 12 clusters. (B) Voronoi tessellation with cells linearly colored according to their local density, with larger, low density cells colored black to red and smaller, high density cells colored yellow to white. Cell transparency is logarithmically scaled according to their size, with larger cells made more transparent and smaller cells made more opaque. (C) Clustered tessellation cells uniquely colored according to the ensemble cluster they belong to. Non-clustered cells are not rendered. (D) The input point pattern with non-clustered points colored gray with 50% transparency and clustered points colored according to their cluster identity using the same coloring scheme as panel C. (E) Raster image of tessellation cell density using the same color mapping as panel B. Each dimension was discretized into 200 pixels. (F) Raster image of ensemble cluster identity using the same color scheme as panels C and D and the same discretization scheme as panel E.
[0035] Figure 6. Embedding a Voronoi tessellation’s clustered points and cell indices into a graph data structure. (A) Given an input point cloud, (B) their Voronoi tessellation is computed. Input points are represented with red dots, tessellation cell vertices are represented with black dots, and tessellation cell edges are represented with black lines. (C) The clustering algorithm is used to identify clustered points and their associated tessellation cells, shaded in gray. Points and cell vertices are indexed for easy downstream identification and separation. (D) The clustered tessellation is embedded into a graph data structure with nodes as clustered points (red dots) and cell vertices (black dots), and edges (black lines) connecting those points to the vertices that compose their tessellation cells. Panels C and D utilize the same indexing and coloring scheme. Ensemble clusters are identified as the graph’s connected components which are individual disconnected regions of the graph, of which there are 2 in this example.
[0036] Figure 7. Discretization of tessellation data into digital images. (A) Each tessellation cell is assigned a unique index (represented here with a unique color assigned to each cell interior) and the tessellation is subdivided into a uniform grid of query points (black circles) which represent pixel centroids. (B) Nearest neighbor interpolation is used to determine which tessellation cell each pixel falls within. Panels A and B use the same coloring scheme to indicate tessellation cell identity. The resulting cell index image can then be used as an indexing variable into the input point or tessellation datasets to quickly and efficiently discretize other metrics such as (C-D) ensemble cluster identity (colors indicate ensemble cluster identity), (E-F) tessellation cell volume, or (G-H) tessellation cell density. The magnitude of cell volume and density are represented with a map where blue indicates low values and yellow indicates high values.
[0037] Figure 8. The effect of point pattern sample size and dimensionality on clustering runtime and approximation of the distribution of Poisson Voronoi cell size. Poisson point patterns of dimensionality 2-6 were simulated in the unit cube with sample sizes between 2000 and 20000 points with 5 linear steps. (A-E) The sample size depicted in the x-axis are the number of viable Voronoi tessellation cells produced by each data set. Data sets with fewer than 100 viable tessellation cells were omitted from the left plots to eliminate impact of insufficient sample size. Y-axes measure the mean absolute error (MAE) between the empirical and approximated probability distribution functions (PDFs). The results for individual point patterns are depicted with black dots and the mean and standard deviation for each sample size are respectively depicted by horizontal red bars and capped error bars. (F-K) The effect of point pattern dimensionality on approximation fit was isolated by sampling 999 tessellation cell volumes from 3 of the largest point patterns at each dimensionality before generating and comparing both empirical and approximated PDFs. (F) Results for individual point patterns are depicted with black dots. (G-K) The tessellation cell volume PDFs for the worst approximation of each dimensionality were graphed, with the empirical PDF and its uncertainty respectively plotted with black dots and error bars and the approximation depicted with a red line. (L-P) Clustering runtime was graphed against point pattern sample size for each dimensionality, with the results for individual data sets depicted with black dots and linear regression fits plotted with a red line. (Q) Slope estimates from the linear regression plotted as red bars depicting the runtime seconds per 1000 points and error bars indicated the standard error of the slope estimation. P-values for slope estimates of dimensions 2-6 were respectively 1.718e-05, 4.900e- 17, 2.638e-18, 1.720e-15, and 4.274e-10.
[0038] Figure 9. Voronoi tessellation clustering for 50 different 2- and 3-dimensional (2D, 3D) Poisson point patterns simulated in the unit cube with a sample sizes of le6. (A-C) Empirical PDFs were generated using the first 945546 cell volumes for each data set to ensure equal sample size across all datasets. (A) Histograms depicting the mean absolute error (MAE) between the empirical and approximated distribution functions for 2D (blue) and 3D (green) point patterns. Overall MAE for 2D was 9.8671e-6 + / - 2.0778e-6 and overall MAE for 3D was 1.6974e-4 + / - 5.6695e-6. (B-C) Tessellation cell volume distribution functions for the worst approximation of each dimensionality were graphed, with the empirical distribution and its 95% confidence interval uncertainty respectively plotted with black dots and error bars and the approximation depicted with a red line. 2D worst fit MAE was 1.4791e-5 and 3D MAE is 1.8254e-4. (D) Histograms depicting the clustering runtime for 2D (blue) and 3D (green) point patterns. Mean 2D runtime was 66.1903s + / - 5.9428s and mean 3D runtime was 146.4457s + / - 2.0491s. Bin counts for all histograms and PDFs were determined using the Rice Rule.
[0039] Figure 10. Effect of study area size on clustering runtime and tessellation cell volume distribution approximation. 2-dimensional (2D) Poisson point patterns with a sample size of le4 were simulated in a cubic study area with side lengths between le-2 and le9 with 20 logarithmic steps. 10 different point patterns were simulated for each study area size. (A-B) No significant correlation was found between study area volume and runtime or cell volume distribution approximation fit. (C) Tessellation cell volume distribution functions with the worst approximation fit (MAE of 1.6496e-4) was graphed with the empirical distribution and its 95% confidence interval uncertainty respectively plotted with black dots and error bars and the approximation depicted with a red line.
[0040] Figure 11. Observed PDF uncertainty. (A-B) Poisson point patterns of dimensionality 2-6 were simulated in a unit cube study area with sample sizes between 2000 and 20000 points with 5 linear steps. 3 different patterns were created for each combination of pattern parameters. (A) Mean uncertainty for each point pattern’s empirical PDF of tessellation cell volumes was plotted as a function of the pattern’s sample size, measured as the number of viable tessellation cells. Dots are colored according to the pattern’s dimensionality (2D blue, 3D cyan, 4D green, 5D yellow, 6D orange). (B) 999 tessellation cell volumes were sampled from the 3 point patterns at each dimensionality with the largest sample size before computing their tessellation cell volume PDF and associated uncertainty. No statistically significant correlation was measured between pattern dimensionality and mean PDF uncertainty. (C-D) 2-dimensional Poisson (random, red) and Thomas (clustered, cyan) point processes were simulated in the unit square study area with samples sizes between 2,000 and 200,000 with 10 linear steps and 5 different patterns generated for each combination of pattern parameters. (C) Mean uncertainty for each random (red) and clustered (cyan) point pattern’s empirical PDF of tessellation cell volumes was plotted as a function of the pattern’s sample size, measured as the number of viable tessellation cells. (D) Voronoi clustering runtime for each pattern plotted as a function of sample size, measured as the number of points composing the pattern. The linear fit for the random (red) and clustered (blue) datasets are plotted with solid lines.
[0041] Figure 12. (A-I) Voronoi cluster analysis and (J-M) SPACE point pattern analysis of two different point patterns. (A-C) Input synthetic localization data of 2 colabeled biomolecules simulated as combinations of Poisson and Thomas point processes. (D-F) Voronoi cluster analysis results with clustered points darkly shaded and outlined in black and non clustered points as 75% transparent. (G-I) Discretized cluster results as cluster masks with colored pixels indicating regions of clustered localizations. (J-K) Empirical cumulative distribution functions (CDFs) of nearest neighbor distances of (J) probe 1 clustered pixels relative to probe 2 clustered pixels and (K) probe 2 clustered pixels relative to probe 1 clustered pixels. Solid colored lines represent the distribution of distances in the observed data while dashed black lines represent the distribution of theoretical distances that would occur if the clustered pixels were randomly distributed in the image. (L) Delta CDFs representing the difference between observed and random CDFs from panels J and K. (M) Spatial association scatter plot with the spatial association index (SAI) of probe 1 clusters relative to probe 2 on the x-axis and the SAI of probe 2 clusters relative to probe 1 on the y-axis.
[0042] DETAILED DESCRIPTION
[0043] Before the present methods and systems are disclosed and described, it is to be understood that the methods and systems are not limited to specific synthetic methods, specific components, or to particular compositions. It is also to be understood that the terminology used in this entire application is for the purpose of describing particular embodiments only and is not intended to be limiting.
[0044] As used in the specification and the appended claims, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from “about” one particular value, to “about” another particular value, or from “about” one value to “about” another value. When such a range is expressed, another embodiment includes from the one particular value, to the other particular value, or from the one particular value to the other particular value. Similarly, when values are expressed as approximations, by use of the antecedent “about,” it will be understood that the particular value forms another embodiment. It will be further understood that the endpoints of each of the ranges are significant both in relation to the other endpoint, and independently of the other endpoint. “Optional” or “optionally” means that the subsequently described event or circumstance may or may not occur, and that the description includes instances where said event or circumstance occurs and instances where it does not.
[0045] Throughout the description and claims of this specification, the word “comprise” and variations of the word, such as “comprising” and “comprises,” means “including but not limited to,” and is not intended to exclude, for example, other additives, components, integers or steps. “Exemplary” means “an example of’ and is not intended to convey an indication of a preferred or ideal embodiment. “Such as” is not used in a restrictive sense, but for explanatory purposes.
[0046] Disclosed herein are components that can be used to perform the disclosed methods and systems. These and other components are disclosed herein, and it is understood that when combinations, subsets, interactions, groups, etc. of these components are disclosed that while specific reference of each various individual and collective combinations and permutation of these may not be explicitly disclosed, each is specifically contemplated and described herein, for all methods and systems. This applies to all aspects of this application including, but not limited to, steps in disclosed methods. Thus, if there are a variety of additional steps that can be performed it is understood that each of these additional steps can be performed with any specific embodiment or combination of embodiments of the disclosed methods.
[0047] As will be appreciated by one skilled in the art, the methods and systems may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the methods and systems may take the form of a computer program product on a computer-readable storage medium having computer- readable program instructions (e.g., computer software) embodied in the storage medium. More particularly, the present methods and systems may take the form of web-implemented computer software. Any suitable computer-readable storage medium may be utilized including hard disks, CD-ROMs, DVD-ROMs, optical storage devices, solid-state storage devices, or magnetic storage devices.
[0048] Embodiments of the methods and systems are described below with reference to block diagrams and flowchart illustrations of methods, systems, apparatuses and computer program products. It will be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create a means for implementing the functions specified in the flowchart block or blocks.
[0049] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including computer-readable instructions for implementing the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
[0050] Accordingly, blocks of the block diagrams and flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions. The present methods and systems may be understood more readily by reference to the following detailed description of preferred embodiments and the Examples included therein and to the Figures and their previous and following description.
[0051] Referring now to Figure 1, provided herein are methods for analysis of a data set (102) comprising a plurality of input data points. These methods can identify clustering within input data points at all spatial scales within the input data set.
[0052] Referring still to Figure 1 , the analytical approach described herein allows a user robustly and efficiently quantify spatial relationships within input data provided as a set of points (coordinates in Cartesian space) with a dimensionality of 2 or greater (102). All input points may fall into one species (univariate case), or into two or more categories, in which case they will be analyzed pairwise, two at a time (bivariate case). Such data may consist of spatial coordinates or other forms of point cloud data. Clusters of points are identified within the input data of each species using unsupervised learning methods (104). Once such clusters are identified, spatial maps of identified clusters are discretized into binary image arrays with the same dimensionality as the input data (108). Spatial analysis is then performed on these discretized images to assess the strength of attraction / repulsion between signal-positive pixels within these binary image arrays (110). In the univariate case, such analysis focuses on spatial relationships between clusters of one species, whereas in the bivariate case, the analysis quantifies bidirectional spatial relationships between clusters of two categories. Thus, the methods described herein enable the robust and rapid quantification of spatial relationships within the input data.
[0053] The input data set can be any suitable data set of interest comprising a plurality of input data points in the form of numbers or multidimensional coordinates. In some embodiments, the multidimensional coordinates can comprise three or more dimensional coordinates (i.e., at least three-dimensional coordinates). The input data points can comprise data from any suitable source that can be represented as points in N-dimensional space. Examples of potential application areas include natural language processing, large language models, data mining, medical risk prediction, etc. In some embodiments, the input data points can comprise geolocation data in combination with one or more additional pieces of data (e.g., time, age or personal characteristic of a person, etc.). In some embodiments, the input data points can comprise healthcare information regarding a plurality of patients (e.g., personal characteristics, biomarker levels, etc.).
[0054] First, unsupervised clustering can be performed. Unsupervised clustering of input points can be performed using a number of algorithms, such as DBSCAN (Density-based spatial clustering of applications with noise), OPTICS (Ordering points to identify the clustering structure), Voronoi tessellation etc. Among these Voronoi tessellation presents certain unique advantages - it can be implemented with a high degree of computational efficiency, it provides information about all length scales contained within the input data from a single algorithm pass, and it does not require any user-defined parameters.
[0055] Referring to Figure 2, methods for analysis of a data set can begin by first processing the plurality of input data points to define a study area (204). The study area can be defined by calculating the smallest area / volume bounded by a right prism or in higher dimensions, a prismatic polytope that contains all of the input data points. In some embodiments, these methods can also include processing and cleaning the data set. For example, in some embodiments, these methods can also include translating all points input data points such that the minimum coordinate in every dimension is 0. In some embodiments, these methods can also include removing duplicate input data points from the data set.
[0056] Next, a tessellation cell can be computed for each of the plurality of input data points (206). In some embodiments, this can comprise computing a Voronoi tessellation cell for each of the plurality of input data points. Subsequently, any tessellation cells that are unbounded or lie outside of the study area are removed (208). In some embodiments, these methods can further comprise fitting a convex hull to each or a group of tessellation cell(s), and removing any tessellation cells that form degenerate convex hulls.
[0057] Next, an instantaneous spatial density can be computed at each of the plurality of input data points using the tessellation cell (210). In some aspects, computing the instantaneous spatial density at each of the plurality of input data points using the tessellation cell can comprise calculating a cell volume of each tessellation cell; and computing a tessellation cell density for each tessellation cell as the inverse of its cell size.
[0058] Next, clustered data points can be identified (212). Clustered data points can be identified as those whose instantaneous spatial density exceeds an analytically defined density threshold. The density threshold typically corresponds to the minimum local density of input points, which is observed more frequently in the input data than would be expected under spatial randomness. Thus, the threshold can be determined by comparing the observed distribution of tessellation cell sizes / local spatial densities with that predicted under complete spatial randomness. The distribution of tessellation cell sizes / local spatial densities under complete spatial randomness can in turn be determined by numerical simulations, wherein the input points are repeatedly randomized, or evaluated analytically by modeling it as a Gamma distribution.
[0059] In some aspects, the density threshold can be analytically defined by computing an expected or random distribution. Clusters can be defined as those groupings of points or tessellation cells whose instantaneous spatial density exceeds that calculated for the expected or random distribution. In some aspects, the density threshold can be analytically defined by distribution theory by modeling the distribution of tessellation cell volumes for randomly distributed points as a 2 or 3 -parameter Gamma distribution.
[0060] In some aspects, identifying clustered data points can further comprise identifying one or more ensemble clusters. The one or more ensemble clusters can be defined as connected components of a graph data structure composed of the input data points and their tessellation cell vertices.
[0061] Next, methods can comprise analyzing the clustered data points in continuous or discrete space to identify a relationship between the clustered data points (214). In some aspects, identifying clustered data points can further comprise identifying one or more ensemble clusters. The one or more ensemble clusters can be defined as connected components of a graph data structure composed of the input data points and their tessellation cell vertices. In some embodiments, analyzing the clustered data points can comprise generating maps of identified clusters (cluster maps) or local densities within clusters (density maps) in which each clustered point is assigned to a specific cluster, enabling the generation of a cluster membership map. Conventionally, the task of assigning clustered points to specific clusters is performed using recursive search methods, which are computationally intensive (quadratic time complexity). Instead, we have developed a novel method wherein, a computational graph data structure is constructed using the input data points and their Voronoi cell vertices as nodes. Clustered data points are thus assigned to one or more ensemble clusters, defined as groups or neighborhoods of input points with tessellation cells that share vertices (i.e. groups of cells that are adjacent or “touching” one another). These ensemble clusters are identified by removing the cell vertex nodes from the list of connected components. This method enables assignment of clustered points to ensemble clusters to be performed with nearly linear time complexity for computation
[0062] The cluster map, density map, and / or cluster membership map, thus generated, can then be discretized into image arrays by subdividing the study area into a uniform grid of pixels or voxels without loss of information. These methods will yield a discretized image array for each species of input data points, thus enabling univariate or bivariate analysis in discrete space. These discretized maps can be processed further using a variety of image analysis, spatial statistics and / or other methods. The discretized cluster maps are binary image masks that indicates non-random regions of clustered localization. Alternatively, discretized density maps generated in the previous step can be binarized after discretization using the density threshold assessed for non-random clustering. Alternatively, density maps can be used to perform data stratification based on one or more density criteria. In some aspects, the analysis can comprise generation of a labeled tessellation map for supervised machine learning applications (218).
[0063] In other aspects, the analysis can comprise generation of a map of instantaneous spatial density, cluster membership, or a combination thereof (220). In certain aspects, the map can comprise a discretized map for point pattern analysis. In some aspects, generating the instantaneous spatial density map can comprise interpolating pixel values over a hyperplane defined by coordinates at a localization position and a cell density value for each clustered data point.
[0064] In certain aspects, generation of the discretized map for point pattern analysis can comprise generating an instantaneous spatial density map; and binarizing the map using the density threshold to produce a binary discretized array (e.g., a binary image mask) that indicates regions of clustering for the plurality of input data points. In some aspects, binarizing the map using the density threshold produces a binary discretized array (e.g., a binary image mask) that indicates non-random regions of clustered localization. Optionally, the method can further comprise evaluating the map to obtain information regarding a relationship between the plurality of input data points (222). For example, in some aspects, the method can further comprise evaluating the map to perform data stratification based on a spatial relationship between the plurality of input data points. In some aspects, evaluating the map can comprise identifying input data points that are proximally related to one another, identifying regions with a target density of input data points, or a combination thereof.
[0065] By way of example, Figure 4 demonstrates the application of this process to a set of input points in 2D (Figure 4(A)). The Voronoi tessellation computed for these points (Figure 4(B)) enables the generation of a density map (Figure 4(C)). A set of randomly distributed points (Figure 4(D)) are similarly processed generating tessellation cells (Figure 4(E)) and a density map (Figure 4(F)). The distribution of observed densities, gleaned from the density map in Figure 4(D) are compiled into a cumulative distribution function (Figure 4(G), solid line). The cumulative distribution function predicted under spatial randomness (Figure 4(G), dashed line) is calculated either by averaging cumulative distribution functions for multiple sets of randomized input points (processed as in Figure 4(D)-(F)) or analytically as described above. Comparison of the observed and random cumulative distribution functions enables identification of non-random clusters (Figure 4(H)). Cluster maps, density maps, and cluster membership maps, thus generated, can be readily discretized (Figure 4(I)-(K)).
[0066] Figure 5 illustrates the processing of input points in 3D (Figure 5(A)) using Voronoi tessellation to perform cluster identification (Figure 5(B)) and cluster assignment (Figure 5(C)) and the discretization of these (Figure 5(D)-(F)).
[0067] Figure 6 illustrates an example method for performing cluster assignment, wherein the clustered input data points (Figure 6(A)) and the vertices of their tessellation cells (Figure 6(B)) are used to create a graph data structure (Figure 6(C), 6(D)). Specifically, the clustered tessellation is embedded into a graph data structure with nodes as clustered points (red dots) and cell vertices (black dots), and edges (black lines) connecting those points to the vertices that compose their tessellation cells. Ensemble clusters are identified as the graph’s connected components which are individual disconnected regions of the graph, of which there are 2 in this example.
[0068] Figure 7 illustrates an example method for discretizing tessellation outputs, which can include cluster maps, density maps, and cluster identity maps. Briefly, each tessellation cell is assigned a unique index and the tessellation then subdivided into a uniform grid of query points, which represent pixel centroids. Nearest neighbor interpolation is then used to determine which tessellation cell each pixel falls within. The resulting cell index image is then used as an indexing variable into the input point or tessellation datasets to quickly and efficiently discretize other metrics such as ensemble cluster identity, tessellation cell volume, or tessellation cell density.
[0069] In a further example, an assessment was performed of the function for estimating Voronoi tessellation cell volume PDFs for Poisson point patterns and saw good approximation for all dimensions tested, between 2D and 6D (Figure 8(A-K), 9(A-C)), though the estimated PDF’s error did increase exponentially with higher dimensionality independent of sample size. The algorithm’s run time also increased exponentially with dimensionality, making analysis of more than 6D datasets untenable on a laptop computer, even for small sample sizes of a few thousand points. This is likely due to the algorithm’s us of the Qhull library which computes the tessellations using triangulation whose time complexity is known to scale poorly with dimensionality. Study area size had no effect on runtime or PDF estimation (Figure 10).
[0070] Uncertainty of the observed pattern’s PDF generated from example Poisson patterns appeared unaffected by dimensionality but decreased with larger sample sizes (Figure ll(A-B)). Clustered patterns modeled using a Thomas Process had significantly lower PDF uncertainties across all sample sizes, though the difference diminished as sample size increased (Figure 11(C)). No difference in SPACE- VorTeCS’ run time was observed between analysis of Thomas and Poisson point patterns (Figure 11(D)).
[0071] The most similar clustering algorithm which also uses Voronoi tessellation, 3DClusterViSu, required 6 hours to analyze a 3D dataset with 783,128 points, at 27.6 seconds per 1000 points. In comparison, SPACE- VorTeCS’ run time for 3D datasets was generally 0.1 seconds per 1000 points (Figure 8(M),8(Q)) from analyses of datasets with 1 million points for an average total run time of 146.4+2.0 seconds. 2D datasets were slightly faster at about 0.05 seconds per 1000 points (Figure 8(L), 8(Q)) from analyses of datasets with 1 million points for an average total run time of 66.2+5.9 seconds (Figure 9(D)). Both algorithms were executed using computers with similar specifications.
[0072] The map can be evaluated using a variety of suitable data analysis methods. In some aspects, evaluating the map can comprise point pattern analysis, image processing, or a combination thereof. In some aspects, evaluating the map can comprise performing a discrete nearest neighbor point pattern analysis on a pair of cluster species.
[0073] Referring now to Figure 2, in some embodiments, the discrete nearest neighbor point pattern analysis can comprise (i) providing the pair of cluster species as a first binary discretized array (e.g., image mask) and a second binary discretized array (e.g., image mask) (304); (ii) calculating a Euclidean distance transformation for the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask) (306); (iii) calculating an observed cumulative distribution function (CDF) of nearest neighbor distances for regions of clustered points in the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask) (308); (iv) calculating a random cumulative distribution function (CDF) of nearest neighbor distances for the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask) from the distance transformation of each image mask relative to the study area (310); and (v) comparing the observed CDF and the random CDF to identify a degree of non-random spatial association between the pair of cluster species (312).
[0074] In some embodiments, comparing the observed CDF and the random CDF can comprise a statistical comparison between the observed CDF and the random CDF. For example, comparing the observed CDF and the random CDF can comprise performing a 2-sided Kolmogorov-Smirnov (KS) test to compare the observed CDF and the random CDF.
[0075] By way of example, Figure 12 illustrates the processing of two species of input points in 2D (Figure 12(A)-(C)) using Voronoi tessellation to identify clusters (Figure 12(D)-(F)) and generate discretized binary image masks (Figure 12(G)-(I)). These, in turn, are inputs for discrete spatial analysis, enabling generation of cumulative distribution functions for observed (solid) and random (dashed) nearest-neighbor distances (Figure 12(J)-(K)), which are then subtracted (Figure 12(L)) to obtain indices of non-random spatial association (Figure 12(M)).
[0076] The methods described herein can allow for the analysis of complex data sets with improved computational efficiency. For example, the methods described herein can reduce computational overhead, runtimes, or a combination thereof, as compared to other methods of data analysis, such as methods that utilize Monte Carlo simulations to derive a random distribution for purposes of defining a density threshold. The methods described herein can also avoid / eliminate the need to define hyperparameters, eliminating a potential source of bias in data analysis.
[0077] The methods described herein can be used for nonparametric clustering. Voronoi tessellation is a specific method used for nonparametric clustering. However, the methods described herein, which can include an implementation of Voronoi tessellation, can be orders of magnitude faster than previous methods.
[0078] By way of example, in some embodiments, the methods described herein can be utilized within Al modeling. For example, these methods can be used for pre-processing and / or postprocessing of data used to train A [ / machine learning systems, or elsewhere within the Al pipeline. In some examples, the methods described herein can be used to facilitate anomaly detection (e.g., by identifying data points that lie far away from the dense clusters, nonparametric clustering can be used to detect outliers or anomalies in datasets), image analysis (e.g., clustering image pixels based on color or texture features using nonparametric methods can help identify distinct regions within images with unknown distributions), customer segmentation (e.g., grouping customers based on their purchasing behavior or demographics using nonparametric clustering can help businesses target marketing campaigns more effectively), bioinformatics (e.g., identifying patterns in gene expression data or protein interactions can be facilitated by nonparametric clustering techniques; clustering gene expression data to identify biological pathways), text mining (e.g., grouping documents based on topic similarity without predefined categories), biological modeling (e.g., simulating cell growth patterns, tissue development, and bone microarchitecture), ecological studies (e.g., analyzing animal territories, plant competition, and species distribution patterns), astronomy (e.g., identifying star and galaxy clusters, modeling gravitational influence, and analyzing large-scale cosmic structures), material science (e.g., studying crystal growth patterns and designing composite materials with desired properties), computational geometry (e.g., partitioning space into regions based on proximity to designated points, useful for path planning and obstacle avoidance), cartography and geography (e.g., creating geographical maps by defining service areas based on locations like hospitals or schools), architecture and design (e.g., generating organic shapes and patterns for building facades and structures), computer graphics: (e.g., creating visually appealing patterns and textures based on Voronoi tessellation), fluid dynamics (e.g., generating computational meshes for fluid simulations where cells are defined by Voronoi polygons), network analysis (e.g., identifying communities within a network where the connections between nodes may not follow a standard pattern), and financial applications (e.g., nonparametric clustering is used to identify groups of financial assets (like stocks or bonds) that exhibit similar behavior without making strong assumptions about the data distribution, allowing for analysis of complex relationships between assets even when they don’t follow a normal distribution, which is particularly useful for identifying clusters of volatile stocks or analyzing market movements in situations where data might be skewed or have outliers).
[0079] The methods described herein can further be developed to provide an algorithm for supervised clustering (e.g., to apply classification framework generated based on training data to test data). The results from training can be leveraged to speed-up subsequent analysis.
[0080] Shortcuts to clustering can be based on distance metrics etc. These methods can allow assign probabilities to cluster assignment of test data. For very large datasets, point-by-point application of spatial statistics imposes a massive computational load and in the case of point process analysis methods focused on local spatial relationships, such as F and G functions, the results can be dominated by spurious effects, especially where multiple counting of points can occur. These issues can be circumvented by applying point process analysis at the level of clusters of points, as in the methods described herein. As such, the methods described herein are especially well suited to the analysis of large data sets. By way of example, the methods described herein can be used in ecology (e.g., to analyze the distribution of plant and animal species to understand their interactions with the environment and each other, identify areas of high biodiversity, and investigate the effects of habitat fragmentation), epidemiology (e.g., to identify disease clusters or outbreaks by analyzing the spatial distribution of disease cases, helping to pinpoint potential sources of infection and target interventions), in criminology / crime analysis / law enforcement (e.g., to identify crime hotspots by mapping the locations of criminal incidents, allowing law enforcement to focus resources on high-risk areas), retail planning (e.g., to optimize the location of new stores by analyzing the spatial distribution of existing stores and customer demographics to maximize market reach), transportation planning (e.g., to analyze the distribution of traffic accidents to identify high-risk areas and inform road safety strategies), urban planning (e.g., to study the spatial patterns of housing, amenities, and infrastructure to understand urban development and identify areas needing improvement), and archaeology (e.g., to analyze the spatial distribution of archaeological sites to understand past human settlements and activity patterns).
[0081] Also provided herein systems are for analysis of a data set comprising a plurality of input data points in the form of numbers or multidimensional coordinates. Such systems can comprise a computer, wherein the computer receives the plurality of input data points, and a processor of the computer executes computer-executable instructions stored in a memory of the computer to perform the methods described herein.
[0082] Figure 3 illustrates an exemplary computer or computing device that can be used for some, a portion of, or all of the features and / or components of the methods and systems described herein. All or a portion of the device shown in Figure 3 may comprise all or any portion of any of the components and devices described herein that may include and / or require a processor or processing capabilities. As used herein, “computer” may include a plurality of computers. The computers may include one or more hardware components such as, for example, a processor 2021, a random-access memory (RAM) module 2022, a read-only memory (ROM) module 2023, a storage 2024, a database 2025, one or more input / output (I / O) devices 2026, and an interface 2027. Alternatively and / or additionally, the computer may include one or more software components such as, for example, a computer-readable medium including computer executable instructions for performing a method or methods associated with the exemplary embodiments. It is contemplated that one or more of the hardware components listed above may be implemented using software. For example, storage 2024 may include a software partition associated with one or more other hardware components or more general storage arrangement (e.g., Storage Area Network or “SAN”). It is understood that the components listed above are exemplary only and not intended to be limiting.
[0083] Processor 2021 may include one or more processors, each configured to execute instructions and process data to perform one or more functions associated with a computer for asset verification / validation and automated transaction processing. Processor 2021 may be communicatively coupled to RAM 2022, ROM 2023, storage 2024, database 2025, RO devices 2026, and interface 2027. Processor 2021 may be configured to execute sequences of computer program instructions to perform various processes. The computer program instructions may be loaded into RAM 2022 for execution by processor 2021.
[0084] RAM 2022 and ROM 2023 may each include one or more devices for storing information associated with operation of processor 2021. For example, ROM 2023 may include a memory device configured to access and store information associated with the computer, including information for identifying, initializing, and monitoring the operation of one or more components and subsystems. RAM 2022 may include a memory device for storing data associated with one or more operations of processor 2021. For example, ROM 2023 may load instructions into RAM 2022 for execution by processor 2021.
[0085] Storage 2024 may include any type of mass storage device configured to store information that processor 2021 may need to perform processes corresponding with the disclosed embodiments. For example, storage 2024 may include one or more magnetic and / or optical disk devices, such as hard drives, CD-ROMs, DVD-ROMs, or any other type of mass media device or system (e.g., SAN).
[0086] Database 2025 may include one or more software and / or hardware components that cooperate to store, organize, sort, filter, and / or arrange data used by the computer and / or processor 2021. For example, database 2025 may include data sets for analysis (e.g., input data points) or store information and instructions related to particular data sets. It is contemplated that database 2025 may store additional and / or different information than that listed above.
[0087] I / O devices 2026 may include one or more components configured to communicate information with a user associated with computer. For example, RO devices may include a console with an integrated keyboard and mouse to allow a user to maintain a database of data, and the like. I / O devices 2026 may also include a display including a graphical user interface (GUI) for outputting information on a monitor. I / O devices 2026 may also include peripheral devices such as, for example, a printer for printing information associated with the computer, a user-accessible disk drive (e.g., a USB port, a floppy, CD-ROM, or DVD-ROM drive, etc.) to allow a user to input data stored on a portable media device, a microphone, a speaker system, or any other suitable type of interface device.
[0088] Interface 2027 may include one or more components configured to transmit and receive data via a communication network, such as the Internet, a local area network, a workstation peer- to-peer network, a direct link network, a wireless network, or any other suitable communication platform. For example, interface 2027 may include one or more modulators, demodulators, multiplexers, demultiplexers, network communication devices, wireless devices, antennas, modems, and any other type of device configured to enable data communication via a communication network.
[0089] EXAMPLES
[0090] The following examples are put forth so as to provide those of ordinary skill in the art with a complete disclosure and description of how the compounds, compositions, articles, devices and / or methods claimed herein are made and evaluated, and are intended to be purely exemplary and are not intended to limit the scope of the disclosure.
[0091] Example 1: Spatial Pattern Analysis in Continuous space Enabled by Voronoi Tessellationbased Cluster Segmentation (SPACE-VorTeCS) for the Analysis of Data Sets
[0092] Summary
[0093] Spatial Pattern Analysis in Continuous space Enabled by Voronoi Tessellation-based Cluster Segmentation (SPACE-VorTeCS) is an algorithmic analysis pipeline that groups data into clusters, discretizes the clusters into a binary image mask, and rapidly measures the spatial relationship between two species of localizations captured by the binary image masks using a form of discrete nearest neighbor point pattern analysis. As implemented in this example, SPACE-VorTeCS is performed in two stages. In the first stage (Stage A), input data points (molecular coordinates) are grouped into clusters and these clusters are discretized to produce cluster map images. In the second stage, point pattern analysis was performed at the cluster level. Example steps performed throughout the data analysis are detailed below, with inputs and outputs for each stage respectively indicated. The procedures for such an experiment are detailed below as well as the steps of the spatial analysis. An example algorithm is described below. This example algorithm is a function implemented in MATLAB that identifies clustered points from an input point cloud, groups the clustered points into ensemble clusters, and optionally discretizes the clusters into a digital image.
[0094] The function takes as inputs:
[0095] 1. a set or list of a plurality of points composing a point cloud with a sample size and dimensionality greater than 2
[0096] 2. an optional definition of the study area as the bounds for each dimension to consider for analysis
[0097] 3. an optional definition of the pixel size used for discretization
[0098] The function outputs a MATLAB structure data type composed of the following fields:
[0099] 1. Points - ‘nPoints ’-rows by ‘nDimensions -columns numerical matrix of input data point coordinates, where ‘nPoints’ is the number of data points and ‘nDimensions’ is the dimensionality of the coordinates.
[0100] 2. nPoints - numeric scalar representing the number of input data points. This number will be equal to the number of rows composing the ‘Points’ matrix.
[0101] 3. nDimensions - numeric scalar representing the dimensionality of the input data. This number will be equal to the number of columns composing the ‘Points’ matrix.
[0102] 4. PixelSize - numeric scalar representing the side length for the pixels which will be used to compose the cell density heatmap (‘CellDensitylmage’) image and cluster masks (‘Clusterindeximage’, ‘ClusterMasklmage’). This number will have the same units as ‘Points’.
[0103] 5. Study Area - structure containing information regarding the size of the study area (IE design space) which bounds the input data a. Min - 1-row by ‘nDims’ -columns numeric array representing the minimum coordinate values from the input data ‘Points’ for all dimensions. b. Max - 1-row by ‘nDims ’-columns numeric array representing the maximum coordinate values from the input data ‘Points’ for all dimensions. c. Size - 1-row by ‘nDims’ -columns numeric array representing the range of coordinate values from the input data ‘Points’ for all dimensions. IE the minimum study area size needed to bound all input data points. d. Volume - numeric scalar representing the area (2-D), volume (3-D), or hypervolume (N-D) of the study area.
[0104] 6. Runtime - structure containing the runtimes for each major step of the cluster analysis. a. Process - Numeric scalar representing the number of seconds it took to parse and process the input data. b. Tessellation - Numeric scalar representing the number of seconds it took to compute the Voronoi tessellation of the input data. c. ConvexHull - Numeric scalar representing the number of seconds it took to fit convex hulls to each cell of the Voronoi tessellation. d. Threshold - Numeric scalar representing the number of seconds it took to compute the cell volume threshold for determining which input data points are clustered. e. Cluster - Numeric scalar representing the number of seconds it took to determine which unique cluster each clustered point belongs to. f. Images - Numeric scalar representing the number of seconds it took to generate the cell density heatmap (‘CellDensity Image’) image and cluster masks (‘Clusterindeximage’, ‘ClusterMasklmage’). g. Total - Numeric scalar representing the number of seconds it took to complete all steps of the cluster analysis.
[0105] 7. TessellationVertices - m-rows by ‘nDims’ -columns numerical matrix of the coordinates of all vertices composing the Voronoi tessellation, where ‘m’ is the number of vertices. The first row will contain all ‘Inf’ values which are used as vertex coordinates for unbounded (infinitely large) tessellation cells.
[0106] 8. CellVertexIndices - ‘nPoints’-rows by 1-column cell array where each element is a 1- row by mi-columns numeric array of row indices into ‘TessellationVertices’ which point to the vertices composing tessellation cell ‘i’, where ‘mi’ is the number of vertices that compose cell ‘i1. Unbounded cells will contain a vertex index of 1 which refers to the ‘Inf’ coordinate.
[0107] 9. CelllsBounded - ‘nPoints’-rows by 1-column logical array that indicates whether cell ‘i’ is bounded, where TRUE (1) indicates the cell is bounded and FALSE (0) indicates the cell is unbounded. Unbounded cells have an infinitely large volume and are therefore omitted from the cluster analysis.
[0108] 10. CelllsInBounds - ‘nPoints’-rows by 1-column logical array that indicates whether all vertices composing cell ‘i’ lie within the study area, where TRUE (1) indicates that all parts of that cell are inside the study area and FALSE (0) indicates that at least one vertex of that cell is outside the study area. Out of bounds cells tend to be those that belong to points on the edge of the study area. These points lack the spatial information of their unobserved neighbors, therefore their tessellation cells may not be accurate and as such are omitted from the cluster analysis.
[0109] 11. nViableCells - numeric scalar representing the number of tessellations cells that can be used for the cluster analysis. These are the cells that are bounded, lie completely within the study area, and do not form degenerate convex hulls whose vertices are co-linear (2D) or coplanar (>3D).
[0110] 12. Cellis Viable - ‘nPoints’-rows by 1-column logical array that indicates whether cell ‘i’ is used in the cluster analysis, where TRUE (1) indicates the cells that are used for cluster analysis and FALSE (0) indicates the cells that are not used because they are either unbounded, out of bounds, or degenerate.
[0111] 13. CellHullFaces - ‘nPoints’-rows by 1-column cell array where each element is a k-rows by v-columns numerical matrix of indices into ‘Tessellation Vertices’, where ‘k’ is the number of edges (2D) or faces (>3D) that compose cell ‘i’s convex hull and ‘v’ is the number of vertices that compose each edge / face. So each row of the matrix contains indices to the vertices that define an edge or face of the convex hull.
[0112] 14. CellVolume - ‘nPoints’-rows by 1-column numeric array of the volume for each tessellation cell. These number have the same units as ‘Points’ but raised to the ‘nDims’ power.
[0113] 15. CellDensity - nPoints’-rows by 1-column numeric array of the density for each tessellation cell. These values are simply the inverse of ‘cellVolume’.
[0114] 16. PointPatternlntensity - numeric scalar representing the intensity, or concentration, of the input data points if they were considered a point pattern, calculated as the sample size (number of data points) divided by the study area volume.
[0115] 17. Volume_PDF_Random_Mean - numeric scalar representing the first moment (mean) of the empirical probability density function of tessellation cell volumes for a theoretical Poisson point pattern with the same intensity and dimensionality as the observed input data points.
[0116] 18. Volume_PDF_Observed_y - row vector of the y-coordinates defining the empirical distribution of tessellation cell volumes for the observed data points stored in ‘Points’.
[0117] 19. Volume_PDF_x - row vector of the x-coordinates defining the empirical distributions of tessellation cell volumes for both the observed data points and the theoretical “random” (Poisson) point pattern. 20. Volume_PDF_Random_y - row vector of the y-coordinates defining the empirical distribution of tessellation cell volumes for the theoretical random (Poisson) point pattern.
[0118] 21. Volume_PDF_Intersection_x - numeric scalar representing the x-coordinate of the point where the observed and random distributions intersect.
[0119] 22. Volume_PDF_Intersection_y - numeric scalar representing the y-coordinate of the point where the observed and random distributions intersect.
[0120] 23. CellDensityClusterThreshold - numeric scalar used as the tessellation cell density threshold which cells must surpass for the seed point to be considered clustered. This value is simply the inverse of ‘Volume_PDF_Intersection_x’.
[0121] 24. PointlsClustered - ‘nPoints’-rows by 1 -column logical array that indicates whether input data point ‘i’ is clustered, where TRUE (1) indicates the point is clustered and FALSE (0) indicates the point is not clustered. A point is considered clustered if its tessellation cell density exceeds the threshold ‘CellDensityClusterThreshold’ .
[0122] 25. AreClustered - logical scalar that indicates whether the input data set has any clustered points, where TRUE (1) indicates that at least one point from the set is clustered and FALSE (0) indicates that none of the input data points are clustered.
[0123] 26. nClusters - numeric scalar representing the total number of ensemble point clusters. An ensemble cluster is defined as all clustered points whose tessellation cells are touching.
[0124] 27. ClusterPoints - ‘nPoints’-rows by 1-column numeric array indicating the index of the cluster each point belongs to. Non-clustered points are assigned an index of 0. The maximum value in this array will be equal to ‘nClusters’.
[0125] 28. ClusterGroups - ‘nClusters ’-rows by 1-column cell array where each element is a numeric row vector indicating the indices of the points composing cluster ‘i'.
[0126] 29. ClusterSize - ‘nClusters’-rows by 1-column numeric array indicating the number of points composing each cluster.
[0127] 30. ClusterVolume - ‘nClusters’ -rows by 1-column numeric array indicating the volume of each cluster. A cluster’s volume is calculating as the sum of all tessellation cell volumes that compose the cluster.
[0128] 31. ImageSize - 1-row by ‘nDims’-columns numeric array indicating the side length of each dimension of the image, in number of pixels.
[0129] 32. Pixel2CellIndex - ‘p’-rows by 1-column numeric array indicating the index of the point whose tessellation cell bounds each image pixel, where ‘p’ is the total number of pixels composing the image. The point index for each pixel is determined using nearest neighbor interpolation with the input data points used as sample points, the points’ index used as sample values, and query points defined by the Euclidean coordinates of the pixels.
[0130] 33. CellDensitylmage - numeric matrix with dimensions defined by ‘ImageSize’ indicating the density of the tessellation cell each pixel lies within. Cell density values for each pixel are determined by using ‘Pixel2CellIndex’ to index ‘CellDensity’.
[0131] 34. Clusterindeximage - numeric matrix with dimensions defined by ‘ImageSize’ indicating the index of the ensemble point cluster each pixel lies within. Cluster indices for each pixel are determined by using ‘Pixel2CellIndex’ to index ‘ClusterPoints’.
[0132] 35. ClusterMasklmage - logical matrix with dimensions defined by ‘ImageSize’ indicating whether a pixel lies within an ensemble point cluster, where TRUE (1) indicates a pixel the lies within a cluster and FALSE (0) indicates a pixel that does not lie within a cluster. These values are determined for each pixel by evaluating whether the pixels in ‘Clusterindeximage’ are greater than 0.
[0133] The algorithm is composed of the following operations:
[0134] 1. Input points are removed from the set if they are a duplicate of any other point or if any of their coordinates are non-numeric or otherwise missing.
[0135] 2. The study area is either user-defined or default as the bounding box of the input point cloud. a) If user-defined, points outside of the study area are removed from the set.
[0136] 3. The algorithm is terminated if there are fewer than 2 points remaining or if the input point cloud has less than 2 dimensions.
[0137] 4. The Voronoi tessellation of the input point cloud is computed using the built-in MATLAB function, voronoin.
[0138] 5. Input points are removed from the set if their tessellation cell is unbounded or features a vertex that resides outside of the study area.
[0139] 6. A convex hull is fit to each tessellation cell using the cells’ vertices and the built-in MATLAB function, convhulln. This function also computes the volume of each convex hull which are used as a proxy for the volume of each tessellation cell.
[0140] 7. The instantaneous density of each tessellation cell is computed as the inverse of their volume.
[0141] 8. Calculating the threshold of tessellation cell density for clustered points. . . a) Deriving the observed distribution. . . ■ The intensity of the input point cloud is computed as the number of points divided by the volume of the study area.
[0142] ■ Random distribution mean is calculated as the inverse of the intensity of the input point cloud.
[0143] ■ Observed distribution cell volumes (x-axis) is limited to 3x the mean of the random distribution to eliminate outliers.
[0144] ■ Bin count calculated using Rice Rule.
[0145] ■ Observed distribution (probability density function) calculated by binning the input points’ tessellation cell volumes.
[0146] ■ Distribution y-coordinates are normalized so the area under the curve is 1 by dividing each y-coordinate by the total sum of y-coordinates. b) Deriving the random distribution using the 2-parameter estimation function
[0147] ■ The cell volume bin values (x-coordinates) from the observed distribution are “un-normalized” by multiplying them by the intensity of the input point cloud.
[0148] ■ Parameters ‘a’ and ‘b’ are calculated using the dimensionality of the input point cloud.
[0149] ■ Random distribution y-coordinates are computed as the values of the estimation function which is calculated using the parameters ‘a’ and ‘b’ and the “un-normalized” x-coordinates.
[0150] ■ Random distribution y-coordinates are normalized so the area under the curve is 1 by dividing each y-coordinate by the total sum of the y- coordinates. c) Finding the intersection of the observed and random distributions. . .
[0151] ■ The peak of the random distribution is identified as the max y-coordinate.
[0152] ■ Distribution crossovers are identified as all positive deviations in the point-wise derivative of the logical array indicating which y-coordinate from the observed distribution is less than the corresponding y-coordinate from the random distribution
[0153] ■ The crossover point used for calculating the cell volume threshold is identified as the crossover with the smallest x-coordinate that is also left of the peak of the random distribution. If no such crossover exists, then all input points are considered “not clustered”. ■ Because it is unlikely that both empirical distributions have y-coordinates at this exact crossover point, the crossover point is instead approximated by calculating the linear intersection of the straight lines defined by the distributions’ y-coordinates adjacent to this crossover point. d) The threshold of tessellation cell density for clustered points is calculated as the inverse of the distributions’ intersection x-coordinate (volume). Input points are identified as “clustered” if their tessellation cell density exceeds this threshold. Identifying ensemble clusters. .. a) Using MATLAB’s built-in graph building function, a graph data structure is generated with nodes corresponding to indices which identify the clustered input points and indices which identify vertices composing the tessellation cells of the clustered input points. These nodes are indexed for organized and rapid inquiry by assigning the clustered points to nodes l:‘n’, where ‘n’ is the number of clustered points, and the associated cell vertices to nodes ‘n’+l :’n’+’m’, where ‘m’ is the total number of vertices composing all clustered points’ tessellation cells. The graph’s edges connect the nodes corresponding to clustered points to the vertices which compose their associated tessellation cell. b) The graph’s connected components are found using MATLAB’s built-in function, AA’AL i- The graph’s connected components are output as lists of node indices which compose each connected component of the graph. c) Ensembles of clustered input points (i.e. ensemble clusters) are defined as groups or neighborhoods of input points with tessellation cells that share vertices (i.e. groups of cells that are adjacent or “touching” one another). These ensemble clusters are identified by removing the cell vertex nodes from the list of connected components. Discretization... a) Discretize the study area into pixels by subdividing the study area into a uniform grid with a spacing equal to the user-defined pixel size. b) Each input point is assigned an identifying index that is a unique integer between l:’n’, where ‘n’ is the number of input points. c) Determine which tessellation cell each pixel’s centroid is bounded within using nearest neighbor interpolation over a hyperplane with sample coordinates as the input points’ coordinates, sample values as the input points’ identifying indices, and query points as the pixels.
[0154] ■ If the input point cloud is 2- or 3-dimensional, then interpolation is performed using MATLAB’s built-in function, This function is computationally efficient but only works for low dimensional inputs.
[0155] ■ If the input point cloud is greater than 3-dimensional, then interpolation is performed using MATLAB’s built-in function, This function is computationally inefficient but works for any number of dimensions.
[0156] 13. The resulting digital image has pixel values equal to the index of the input point whose tessellation cell bounds the pixel’s centroid. This embedding can then be used as an indexing variable into the input points or their tessellation cells to quickly and efficiently generate other images with pixel values corresponding to any metric with values derived from the input points or their tessellation cells, such as cell density, cell volume, or the index of the ensemble cluster that input points are assigned to.
[0157] While the methods and systems have been described in connection with preferred embodiments and specific examples, it is not intended that the scope be limited to the particular embodiments set forth, as the embodiments herein are intended in all respects to be illustrative rather than restrictive.
[0158] Unless otherwise expressly stated, it is in no way intended that any method set forth herein be construed as requiring that its steps be performed in a specific order. Accordingly, where a method claim does not actually recite an order to be followed by its steps or it is not otherwise specifically stated in the claims or descriptions that the steps are to be limited to a specific order, it is no way intended that an order be inferred, in any respect. This holds for any possible non-express basis for interpretation, including: matters of logic with respect to arrangement of steps or operational flow: plain meaning derived from grammatical organization or punctuation; the number or type of embodiments described in the specification.
[0159] Throughout this application, various publications may be referenced. The disclosures of these publications in their entireties are hereby incorporated by reference into this application in order to more fully describe the state of the art to which the methods and systems pertain.
[0160] It will be apparent to those skilled in the art that various modifications and variations can be made without departing from the scope or spirit. Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit being indicated by the following claims.
Claims
WHAT IS CLAIMED IS:
1. A method for analysis of a data set comprising a plurality of input data points in the form of numbers or multidimensional coordinates, the method comprising:(a) processing the plurality of input data points to define a study area;(b) computing a tessellation cell for each of the plurality of input data points;(c) removing any tessellation cells that are unbounded or lie outside of the study area;(d) computing an instantaneous spatial density at each of the plurality of input data points using the tessellation cell;(e) identifying clustered data points as those whose instantaneous spatial density exceeds an analytically defined density threshold; and(f) grouping clustered data points into ensemble point clusters (clustered points with adjacent tessellation cells).
2. The method of claim 1 , further comprising analyzing the clustered data points identified in step (e) or the ensemble point clusters in (f) in continuous or discrete space to identify a relationship between the clustered data points.
3. The method of any one of claims 1-2, wherein the method further comprises adding reference data points to the input data points to improve definition of cluster boundaries, separability of clusters, or a combination thereof.
4. The method of claim 3, wherein the reference data points possess a grid spacing that is contingent upon observed densities of input points within clusters, observed spatial separation between clusters, or a combination thereof.
5. The method of any one of claims 1-4, wherein step (i) comprises: (a) computing a plurality of tessellation cells based on the plurality of input data points; and (b) grouping the clusters based on the plurality of tessellation cells such that there is a correspondence between tessellation cells and clusters.
6. The method of any one of claims 1-5, wherein step (ii) comprises: (a) generating a plurality of grid points; and (b) assigning each of a subset of the grid points to a corresponding tessellation cell.
7. The method of any one of claims 1-6, wherein the analysis comprises generation of a labeled tessellation map for supervised machine learning applications.
8. The method of claim 7, wherein the analysis comprises generation of discretized map for point pattern analysis.
9. The method of claim 8, wherein generation of discretized map for point pattern analysis comprises generating an instantaneous spatial density map; and binarizing the map using the density threshold to produce a binary image mask that indicates regions of clustering for the plurality of input data points.
10. The method of claim 8, wherein the method further comprises evaluating the map to perform data stratification based on a spatial relationship between the plurality of input data points.
11. The method of claim 10, wherein evaluating the map identifies input data points that are proximally related to one another, regions with a target density of input data points, or a combination thereof.
12. The method of any one of claims 10-11, wherein evaluating the map comprises point pattern analysis, image processing, or another suitable data analysis method.
13. The method of claim 12, wherein the evaluating the map comprises performing discrete nearest neighbor point pattern analysis on a pair of cluster species.
14. The method of claim 13, wherein the discrete nearest neighbor point pattern analysis comprises:(i) providing the pair of cluster species as a first binary discretized array (e.g., image mask) and a second binary discretized array (e.g., image mask);(ii) calculating a Euclidean distance transformation for the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask);(iii) calculating an observed cumulative distribution function (CDF) of nearest neighbor distances for regions of clustered points in the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask);(iv) calculating a random cumulative distribution function (CDF) of nearest neighbor distances for the first binary discretized array (e.g., image mask) and the second binary discretized array (e.g., image mask); and(v) comparing the observed CDF and the random CDF to identify a degree of nonrandom spatial association between the pair of cluster species.
15. The method of claim 14, wherein comparing the observed CDF and the random CDF comprises a statistical comparison between the observed CDF and the random CDF.
16. The method of any one of claims 14-15, wherein comparing the observed CDF and the random CDF comprises performing a 2-sided Kolmogorov-Smirnov (KS) test to compare the observed CDF and the random CDF.
17. The method of any one of claims 1-16, wherein computing a tessellation cell for each of the plurality of input data points comprises computing a Voronoi tessellation cell for each of the plurality of input data points.
18. The method of any one of claims 1-17, wherein computing the instantaneous spatial density at each of the plurality of input data points using the tessellation cell comprises calculating a cell volume of each tessellation cell; and computing a tessellation cell density for each tessellation cell as the inverse of its cell size.
19. The method of any one of claims 1-18, wherein the density threshold is analytically defined by distribution theory.
20. The method of any one of claims 1-19, wherein identifying clustered data points further comprises identifying one or more ensemble clusters.
21. The method of claim 20, wherein the one or more ensemble clusters are defined as connected components of a graph data structure composed of the input data points and their tessellation cell vertices.
22. The method of claim 9, wherein binarizing the map using the density threshold produces a binary image mask that indicates non-random regions of clustered localization.
23. The method of any of claims 1-22, wherein computing an instantaneous spatial density at each of the plurality of input data points comprises interpolating pixel values over a hyperplane defined by coordinates at a localization position and a cell density value for each clustered data point.
24. The method of any of claims 1-23, wherein the multidimensional coordinates comprise three or more dimensional coordinates.
25. The method of any of claims 1-24, wherein the method avoids the need to define hyperparameters.
26. The method of any of claims 1-25, wherein the method for analysis can identify clustering within the plurality of input data points at all spatial scales within the input data points.
27. The method of any of claims 1-26, wherein the method for analysis reduces computational overhead, runtimes, or a combination thereof, as compared to other methods of data analysis, such as methods that utilize Monte Carlo simulations to derive a random distribution for purposes of defining a density threshold.
28. The method of any one of claims 1-27, wherein the method is characterized by less than quadratic time complexity, such as nearly linear time complexity.
29. The method of any one of claims 1-28, wherein the method is more computationally efficient than methods which require explicit evaluation of all inter-point distances between input points.
30. A method for the analysis of a data set comprising a plurality of input data points, the method comprising:(i) computing a tessellation cell for a subset of the plurality of input data points, wherein each tessellation cell is defined by its vertices;(ii) generating a graph data structure composed of the input data points and corresponding tessellation cell vertices; and(iii) clustering the subset of the plurality of input data points according to the graph data structure.
31. A system for analysis of a data set comprising a plurality of input data points in the form of numbers or multidimensional coordinates, the system comprising a computer, wherein the computer receives the plurality of input data points, and a processor of the computer executes computer-executable instructions stored in a memory of the computer to perform the method of any of claims 1-30.
Citation Information
Patent Citations
APP recommendation using crowd-sourced localized APP usage data
US20130325856A1
Tissue Object-Based Machine Learning System for Automated Scoring of Digital Whole Slides
US20160042511A1
Method for detecting spatial coupling
US20230237664A1
Method & apparatus for processing microscope images of cells and tissue structures
WO2022229638A1