Constructs a matrix of gene-gene relationships based on distance metrics.

extract_angles(x_mat, method = "cosine")

Arguments

x_mat

An FBM object containing raw gene expression data, where rows correspond to genes and columns to samples. The data will be normalized and scaled within the function.

method

A character string specifying the method to compute the gene-gene relationships. Options are:

  • "cosine" (default): Computes the cosine angle between genes.

  • "spearman": Computes the Spearman rank correlation coefficient by rank-transforming the data before computing the correlation.

Value

An FBM object containing the gene-gene correlation matrix. The matrix is square with dimensions equal to the number of genes and contains the pairwise correlations between genes. The diagonal elements are set to NA.

Details

The function returns the gene-gene angle matrix as an FBM object.

Examples


mat <- matrix(
 c(
     5, 3, 0, 0,
     0, 0, 0, 3,
     2, 1, 3, 4,
     0, 0, 1, 0,
     1, 2, 1, 2,
     3, 4, 3, 4
   ),
   nrow = 6, # 6 genes
   ncol = 4, # 4 cells
   byrow = TRUE
)

mat <- bigstatsr::FBM(nrow = nrow(mat), ncol = ncol(mat), init = mat)

angle_mat <- extract_angles(mat)
angle_mat[]
#>            [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
#> [1,]         NA -0.5443311 -0.7378648 -0.5443311 -0.2357023 -0.2357023
#> [2,] -0.5443311         NA  0.7745967 -0.3333333  0.5773503  0.5773503
#> [3,] -0.7378648  0.7745967         NA  0.2581989  0.0000000  0.0000000
#> [4,] -0.5443311 -0.3333333  0.2581989         NA -0.5773503 -0.5773503
#> [5,] -0.2357023  0.5773503  0.0000000 -0.5773503         NA  1.0000000
#> [6,] -0.2357023  0.5773503  0.0000000 -0.5773503  1.0000000         NA