Skip to contents

Compute k-Nearest Neighbor Graph from Embedding

Usage

embedding2knn(embedding, k, mode = "connectivity", ...)

Arguments

embedding

A numeric matrix of embeddings (rows = observations).

k

Integer. Number of nearest neighbors to use.

mode

Character. Either `"dist"` for raw distances or `"connectivity"` for Gaussian kernel weights (default: `"connectivity"`).

...

Additional arguments passed to `knn_flat()`.

Value

A sparse matrix representing the k-NN graph (class `dgCMatrix`).

Details

Converts a data matrix (e.g., UMAP or PCA coordinates) into a k-nearest neighbor graph. Returns a sparse matrix with either pairwise distances or computed connectivities.

Examples

mat <- matrix(rnorm(100), ncol = 2)
knn_mat <- embedding2knn(mat, k = 5)
print(knn_mat)
#> 50 x 50 sparse Matrix of class "dgCMatrix"
#>   [[ suppressing 50 column names ‘1’, ‘2’, ‘3’ ... ]]
#>                                                                         
#> 1  .         0.1184208 .         .         .         .         .        
#> 2  0.1184208 .         .         .         .         .         .        
#> 3  .         .         .         .         .         .         .        
#> 4  .         .         .         .         .         0.2567637 0.3406143
#> 5  .         .         .         .         .         .         0.4762501
#> 6  .         .         .         0.2567637 .         .         .        
#> 7  .         .         .         0.3406143 0.4762501 .         .        
#> 8  .         .         .         .         .         .         .        
#> 9  .         .         .         .         .         .         .        
#> 10 .         .         .         .         .         .         .        
#> 11 0.3868198 0.5310363 .         .         .         .         .        
#> 12 .         .         .         .         .         .         .        
#> 13 .         .         .         0.8169116 0.4407453 .         0.8472785
#> 14 .         .         .         .         .         0.2175589 .        
#> 15 .         .         .         .         .         0.1854531 .        
#> 16 .         .         .         .         .         .         .        
#> 17 .         .         0.9953676 .         .         .         .        
#> 18 .         .         .         .         .         .         .        
#> 19 .         .         .         .         .         .         .        
#> 20 .         .         .         .         .         .         .        
#> 21 0.3988396 0.3480969 .         .         .         .         .        
#> 22 .         .         .         .         .         .         .        
#> 23 .         .         .         .         .         .         .        
#> 24 .         .         0.2239967 .         .         .         .        
#> 25 0.3074574 0.7805902 .         .         .         .         .        
#> 26 .         .         .         .         0.4643857 .         0.6059912
#> 27 .         .         .         .         .         .         .        
#> 28 .         .         .         .         .         .         .        
#> 29 .         .         .         .         .         .         .        
#> 30 .         .         .         .         .         .         .        
#> 31 .         .         0.3778977 .         .         .         .        
#> 32 .         .         .         .         .         .         .        
#> 33 .         .         .         .         .         .         .        
#> 34 .         .         .         .         .         .         .        
#> 35 .         .         0.2153303 .         .         .         .        
#> 36 .         .         .         .         .         .         .        
#> 37 .         .         .         .         0.4087390 0.3159224 0.0754958
#> 38 .         .         .         .         0.4164495 .         0.7430310
#> 39 .         .         .         .         .         0.2932228 .        
#> 40 .         .         0.6076027 .         .         .         .        
#> 41 .         .         .         .         .         0.6364572 .        
#> 42 .         0.9447261 .         .         .         .         .        
#> 43 .         0.3135464 .         .         .         .         .        
#> 44 .         .         .         0.1497586 .         .         .        
#> 45 .         .         0.1973182 .         .         .         .        
#> 46 0.8437874 0.1337990 .         .         .         .         .        
#> 47 .         .         .         0.8109439 .         0.3991822 .        
#> 48 .         .         .         .         .         .         .        
#> 49 .         .         .         0.1927613 0.5486364 .         0.9222609
#> 50 .         .         0.3697452 .         .         .         .        
#>                                                                          
#> 1  .         .         .          0.3868198 .         .         .        
#> 2  .         .         .          0.5310363 .         .         .        
#> 3  .         .         .          .         .         .         .        
#> 4  .         .         .          .         .         0.8169116 .        
#> 5  .         .         .          .         .         0.4407453 .        
#> 6  .         .         .          .         .         .         0.2175589
#> 7  .         .         .          .         .         0.8472785 .        
#> 8  .         0.2427997 .          .         0.1471548 .         .        
#> 9  0.2427997 .         .          .         .         .         .        
#> 10 .         .         .          .         .         0.0335639 .        
#> 11 .         .         .          .         .         .         .        
#> 12 0.1471548 .         .          .         .         .         .        
#> 13 .         .         0.03356390 .         .         .         .        
#> 14 .         .         .          .         .         .         .        
#> 15 .         .         .          .         .         .         0.8640470
#> 16 .         .         .          .         .         .         .        
#> 17 .         .         .          .         .         .         .        
#> 18 .         .         .          .         .         .         .        
#> 19 0.4809467 0.1508191 .          .         .         .         .        
#> 20 .         .         .          .         .         .         .        
#> 21 .         .         0.08381500 .         .         .         .        
#> 22 .         .         .          .         .         .         .        
#> 23 0.2963451 0.4321830 .          .         .         .         .        
#> 24 .         .         .          .         .         .         .        
#> 25 .         .         .          0.8624831 .         .         .        
#> 26 .         .         0.03355496 .         .         0.5104976 .        
#> 27 .         0.5882089 .          .         .         .         .        
#> 28 .         .         .          .         0.2464631 .         .        
#> 29 .         .         .          .         .         .         .        
#> 30 0.4133902 0.8002023 .          .         .         .         .        
#> 31 .         .         .          .         .         .         .        
#> 32 0.5768500 .         .          .         0.2111644 .         .        
#> 33 .         .         .          .         .         .         .        
#> 34 .         .         .          .         0.5551898 .         .        
#> 35 .         .         .          .         .         .         .        
#> 36 0.9443623 0.3721877 .          .         .         .         .        
#> 37 .         .         .          .         .         0.1850369 .        
#> 38 .         .         0.03174495 .         .         0.6351541 .        
#> 39 .         .         .          .         .         .         0.7372965
#> 40 .         .         .          .         .         .         .        
#> 41 .         .         .          .         .         .         0.6023753
#> 42 .         .         .          0.3149786 .         .         .        
#> 43 .         .         .          0.3159085 0.2136777 .         .        
#> 44 .         .         .          .         .         .         0.1111596
#> 45 .         .         .          .         .         .         .        
#> 46 .         .         .          0.2902373 .         .         .        
#> 47 .         .         0.05162390 .         .         0.5978574 .        
#> 48 .         .         .          .         .         .         .        
#> 49 .         .         .          .         .         0.6798080 .        
#> 50 .         .         .          .         .         .         .        
#>                                                                         
#> 1  .         .         .         .         .         .         0.3988396
#> 2  .         .         .         .         .         .         0.3480969
#> 3  .         .         0.9953676 .         .         .         .        
#> 4  .         .         .         .         .         .         .        
#> 5  .         .         .         .         .         .         .        
#> 6  0.1854531 .         .         .         .         .         .        
#> 7  .         .         .         .         .         .         .        
#> 8  .         .         .         .         0.4809467 .         .        
#> 9  .         .         .         .         0.1508191 .         .        
#> 10 .         .         .         .         .         .         0.0838150
#> 11 .         .         .         .         .         .         .        
#> 12 .         .         .         .         .         .         .        
#> 13 .         .         .         .         .         .         .        
#> 14 0.8640470 .         .         .         .         .         .        
#> 15 .         0.1275482 .         .         .         .         .        
#> 16 0.1275482 .         .         0.5400502 .         .         .        
#> 17 .         .         .         .         .         .         .        
#> 18 .         0.5400502 .         .         .         .         .        
#> 19 .         .         .         .         .         .         .        
#> 20 .         .         .         .         .         .         .        
#> 21 .         .         .         .         .         .         .        
#> 22 .         .         .         0.5547196 .         .         .        
#> 23 .         .         .         .         .         0.2503863 .        
#> 24 .         .         0.2173238 .         .         0.9053228 .        
#> 25 .         .         .         .         .         .         0.3650589
#> 26 .         .         .         .         .         .         .        
#> 27 .         .         .         .         .         0.2024763 .        
#> 28 .         0.5742238 .         0.3681105 .         .         .        
#> 29 .         .         .         .         .         .         .        
#> 30 .         .         .         .         0.1395176 0.2346526 .        
#> 31 .         .         0.3174120 .         .         .         .        
#> 32 .         .         .         0.3511020 0.1329241 .         .        
#> 33 .         .         .         0.1887311 .         0.3641781 .        
#> 34 .         0.2487339 .         .         .         .         .        
#> 35 .         .         .         .         .         .         .        
#> 36 .         .         .         .         0.4979924 .         .        
#> 37 .         .         .         .         .         .         .        
#> 38 .         .         .         .         .         .         .        
#> 39 0.8792834 .         .         .         .         .         .        
#> 40 .         .         0.5476483 .         .         .         .        
#> 41 0.4628764 .         .         .         .         .         .        
#> 42 .         .         .         .         .         .         0.3034629
#> 43 .         0.3058169 .         .         .         .         .        
#> 44 0.2744359 .         .         .         .         .         .        
#> 45 .         .         0.1764789 .         .         .         .        
#> 46 .         .         .         .         .         .         0.6057831
#> 47 .         .         .         .         .         .         .        
#> 48 .         .         .         .         .         .         .        
#> 49 .         .         .         .         .         .         .        
#> 50 .         .         0.3401172 .         .         0.6922838 .        
#>                                                                          
#> 1  .         .         .         0.3074574 .          .         .        
#> 2  .         .         .         0.7805902 .          .         .        
#> 3  .         .         0.2239967 .         .          .         .        
#> 4  .         .         .         .         .          .         .        
#> 5  .         .         .         .         0.46438573 .         .        
#> 6  .         .         .         .         .          .         .        
#> 7  .         .         .         .         0.60599124 .         .        
#> 8  .         0.2963451 .         .         .          .         .        
#> 9  .         0.4321830 .         .         .          0.5882089 .        
#> 10 .         .         .         .         0.03355496 .         .        
#> 11 .         .         .         0.8624831 .          .         .        
#> 12 .         .         .         .         .          .         0.2464631
#> 13 .         .         .         .         0.51049758 .         .        
#> 14 .         .         .         .         .          .         .        
#> 15 .         .         .         .         .          .         .        
#> 16 .         .         .         .         .          .         0.5742238
#> 17 .         .         0.2173238 .         .          .         .        
#> 18 0.5547196 .         .         .         .          .         0.3681105
#> 19 .         .         .         .         .          .         .        
#> 20 .         0.2503863 0.9053228 .         .          0.2024763 .        
#> 21 .         .         .         0.3650589 .          .         .        
#> 22 .         0.6478643 0.2074678 .         .          .         .        
#> 23 0.6478643 .         0.2346899 .         .          0.1330021 .        
#> 24 0.2074678 0.2346899 .         .         .          .         .        
#> 25 .         .         .         .         .          .         .        
#> 26 .         .         .         .         .          .         .        
#> 27 .         0.1330021 .         .         .          .         .        
#> 28 .         .         .         .         .          .         .        
#> 29 .         .         .         .         .          0.1902318 .        
#> 30 0.2535603 0.7990616 .         .         .          0.3017438 .        
#> 31 .         .         .         .         .          .         .        
#> 32 0.3158043 0.5614030 .         .         .          .         0.4060475
#> 33 0.7092609 0.4330073 0.5356486 .         .          .         .        
#> 34 .         .         .         .         .          .         0.7527819
#> 35 .         .         0.1655454 .         .          .         .        
#> 36 .         .         .         .         .          0.1525387 .        
#> 37 .         .         .         .         .          .         .        
#> 38 .         .         .         .         0.95370720 .         .        
#> 39 .         .         .         .         .          .         .        
#> 40 .         .         .         .         .          .         .        
#> 41 .         .         .         .         .          .         .        
#> 42 .         .         .         0.5621012 .          .         .        
#> 43 .         .         .         0.2447889 .          .         0.3182275
#> 44 .         .         .         .         .          .         .        
#> 45 .         .         .         .         .          .         .        
#> 46 .         .         .         0.3128206 .          .         .        
#> 47 .         .         .         .         .          .         .        
#> 48 .         .         .         .         .          0.1568737 .        
#> 49 .         .         .         .         0.76636704 .         .        
#> 50 .         .         0.7337795 .         .          .         .        
#>                                                                         
#> 1  .         .         .         .         .         .         .        
#> 2  .         .         .         .         .         .         .        
#> 3  .         .         0.3778977 .         .         .         0.2153303
#> 4  .         .         .         .         .         .         .        
#> 5  .         .         .         .         .         .         .        
#> 6  .         .         .         .         .         .         .        
#> 7  .         .         .         .         .         .         .        
#> 8  .         0.4133902 .         0.5768500 .         .         .        
#> 9  .         0.8002023 .         .         .         .         .        
#> 10 .         .         .         .         .         .         .        
#> 11 .         .         .         .         .         .         .        
#> 12 .         .         .         0.2111644 .         0.5551898 .        
#> 13 .         .         .         .         .         .         .        
#> 14 .         .         .         .         .         .         .        
#> 15 .         .         .         .         .         .         .        
#> 16 .         .         .         .         .         0.2487339 .        
#> 17 .         .         0.3174120 .         .         .         .        
#> 18 .         .         .         0.3511020 0.1887311 .         .        
#> 19 .         0.1395176 .         0.1329241 .         .         .        
#> 20 .         0.2346526 .         .         0.3641781 .         .        
#> 21 .         .         .         .         .         .         .        
#> 22 .         0.2535603 .         0.3158043 0.7092609 .         .        
#> 23 .         0.7990616 .         0.5614030 0.4330073 .         .        
#> 24 .         .         .         .         0.5356486 .         0.1655454
#> 25 .         .         .         .         .         .         .        
#> 26 .         .         .         .         .         .         .        
#> 27 0.1902318 0.3017438 .         .         .         .         .        
#> 28 .         .         .         0.4060475 .         0.7527819 .        
#> 29 .         .         .         .         .         .         0.3439661
#> 30 .         .         .         0.3940786 .         .         .        
#> 31 .         .         .         .         .         .         0.4771881
#> 32 .         0.3940786 .         .         .         0.2861055 .        
#> 33 .         .         .         .         .         .         .        
#> 34 .         .         .         0.2861055 .         .         .        
#> 35 0.3439661 .         0.4771881 .         .         .         .        
#> 36 .         0.5239135 .         0.4612485 .         .         .        
#> 37 .         .         .         .         .         .         .        
#> 38 .         .         .         .         .         .         .        
#> 39 .         .         .         .         .         .         .        
#> 40 0.1144858 .         0.8246787 .         .         .         0.7688434
#> 41 .         .         .         .         .         .         .        
#> 42 .         .         .         .         .         .         .        
#> 43 .         .         .         .         .         0.3971952 .        
#> 44 .         .         .         .         .         .         .        
#> 45 .         .         0.3192183 .         .         .         .        
#> 46 .         .         .         .         .         .         .        
#> 47 .         .         .         .         .         .         .        
#> 48 0.9224315 .         .         .         .         .         0.2257139
#> 49 .         .         .         .         .         .         .        
#> 50 0.1537840 .         .         .         .         .         0.6003765
#>                                                                            
#> 1  .         .          .          .         .          .         .        
#> 2  .         .          .          .         .          .         0.9447261
#> 3  .         .          .          .         0.60760272 .         .        
#> 4  .         .          .          .         .          .         .        
#> 5  .         0.40873902 0.41644948 .         .          .         .        
#> 6  .         0.31592238 .          0.2932228 .          0.6364572 .        
#> 7  .         0.07549580 0.74303102 .         .          .         .        
#> 8  0.9443623 .          .          .         .          .         .        
#> 9  0.3721877 .          .          .         .          .         .        
#> 10 .         .          0.03174495 .         .          .         .        
#> 11 .         .          .          .         .          .         0.3149786
#> 12 .         .          .          .         .          .         .        
#> 13 .         0.18503691 0.63515410 .         .          .         .        
#> 14 .         .          .          0.7372965 .          0.6023753 .        
#> 15 .         .          .          0.8792834 .          0.4628764 .        
#> 16 .         .          .          .         .          .         .        
#> 17 .         .          .          .         0.54764825 .         .        
#> 18 .         .          .          .         .          .         .        
#> 19 0.4979924 .          .          .         .          .         .        
#> 20 .         .          .          .         .          .         .        
#> 21 .         .          .          .         .          .         0.3034629
#> 22 .         .          .          .         .          .         .        
#> 23 .         .          .          .         .          .         .        
#> 24 .         .          .          .         .          .         .        
#> 25 .         .          .          .         .          .         0.5621012
#> 26 .         .          0.95370720 .         .          .         .        
#> 27 0.1525387 .          .          .         .          .         .        
#> 28 .         .          .          .         .          .         .        
#> 29 .         .          .          .         0.11448578 .         .        
#> 30 0.5239135 .          .          .         .          .         .        
#> 31 .         .          .          .         0.82467867 .         .        
#> 32 0.4612485 .          .          .         .          .         .        
#> 33 .         .          .          .         .          .         .        
#> 34 .         .          .          .         .          .         .        
#> 35 .         .          .          .         0.76884340 .         .        
#> 36 .         .          .          .         .          .         .        
#> 37 .         .          .          .         .          .         .        
#> 38 .         .          .          .         .          .         .        
#> 39 .         .          .          .         .          0.6185784 .        
#> 40 .         .          .          .         .          .         .        
#> 41 .         .          .          0.6185784 .          .         .        
#> 42 .         .          .          .         .          .         .        
#> 43 .         .          .          .         .          .         0.2381148
#> 44 .         .          .          0.2884208 .          .         .        
#> 45 .         0.30435584 .          .         0.22536100 .         .        
#> 46 .         .          .          .         .          .         .        
#> 47 .         .          .          0.2855604 .          0.1949143 .        
#> 48 .         .          .          .         0.07294978 .         .        
#> 49 .         0.07915158 0.84737132 .         .          .         .        
#> 50 .         .          .          .         0.60937493 .         .        
#>                                                                           
#> 1  .         .         .         0.8437874 .         .          .         
#> 2  0.3135464 .         .         0.1337990 .         .          .         
#> 3  .         .         0.1973182 .         .         .          .         
#> 4  .         0.1497586 .         .         0.8109439 .          0.19276130
#> 5  .         .         .         .         .         .          0.54863644
#> 6  .         .         .         .         0.3991822 .          .         
#> 7  .         .         .         .         .         .          0.92226095
#> 8  .         .         .         .         .         .          .         
#> 9  .         .         .         .         .         .          .         
#> 10 .         .         .         .         0.0516239 .          .         
#> 11 0.3159085 .         .         0.2902373 .         .          .         
#> 12 0.2136777 .         .         .         .         .          .         
#> 13 .         .         .         .         0.5978574 .          0.67980795
#> 14 .         0.1111596 .         .         .         .          .         
#> 15 .         0.2744359 .         .         .         .          .         
#> 16 0.3058169 .         .         .         .         .          .         
#> 17 .         .         0.1764789 .         .         .          .         
#> 18 .         .         .         .         .         .          .         
#> 19 .         .         .         .         .         .          .         
#> 20 .         .         .         .         .         .          .         
#> 21 .         .         .         0.6057831 .         .          .         
#> 22 .         .         .         .         .         .          .         
#> 23 .         .         .         .         .         .          .         
#> 24 .         .         .         .         .         .          .         
#> 25 0.2447889 .         .         0.3128206 .         .          .         
#> 26 .         .         .         .         .         .          0.76636704
#> 27 .         .         .         .         .         0.15687373 .         
#> 28 0.3182275 .         .         .         .         .          .         
#> 29 .         .         .         .         .         0.92243150 .         
#> 30 .         .         .         .         .         .          .         
#> 31 .         .         0.3192183 .         .         .          .         
#> 32 .         .         .         .         .         .          .         
#> 33 .         .         .         .         .         .          .         
#> 34 0.3971952 .         .         .         .         .          .         
#> 35 .         .         .         .         .         0.22571387 .         
#> 36 .         .         .         .         .         .          .         
#> 37 .         .         0.3043558 .         .         .          0.07915158
#> 38 .         .         .         .         .         .          0.84737132
#> 39 .         0.2884208 .         .         0.2855604 .          .         
#> 40 .         .         0.2253610 .         .         0.07294978 .         
#> 41 .         .         .         .         0.1949143 .          .         
#> 42 0.2381148 .         .         .         .         .          .         
#> 43 .         .         .         .         .         .          .         
#> 44 .         .         .         .         0.6305087 .          .         
#> 45 .         .         .         .         .         .          .         
#> 46 .         .         .         .         .         .          .         
#> 47 .         0.6305087 .         .         .         .          .         
#> 48 .         .         .         .         .         .          .         
#> 49 .         .         .         .         .         .          .         
#> 50 .         .         .         .         .         0.08459193 .         
#>              
#> 1  .         
#> 2  .         
#> 3  0.36974516
#> 4  .         
#> 5  .         
#> 6  .         
#> 7  .         
#> 8  .         
#> 9  .         
#> 10 .         
#> 11 .         
#> 12 .         
#> 13 .         
#> 14 .         
#> 15 .         
#> 16 .         
#> 17 0.34011719
#> 18 .         
#> 19 .         
#> 20 0.69228383
#> 21 .         
#> 22 .         
#> 23 .         
#> 24 0.73377945
#> 25 .         
#> 26 .         
#> 27 .         
#> 28 .         
#> 29 0.15378399
#> 30 .         
#> 31 .         
#> 32 .         
#> 33 .         
#> 34 .         
#> 35 0.60037655
#> 36 .         
#> 37 .         
#> 38 .         
#> 39 .         
#> 40 0.60937493
#> 41 .         
#> 42 .         
#> 43 .         
#> 44 .         
#> 45 .         
#> 46 .         
#> 47 .         
#> 48 0.08459193
#> 49 .         
#> 50 .