Topological Kernel Association Test (TopKAT)
TopKAT.Rd
Perform global test of association between the geometric (topological) structures of spatially-resolved images of cells with continuous, binary, or survival outcomes.
Arguments
- y
Vector of outcomes. Must be numeric. For continuous and survival data, should be a numeric vector. For a binary outcome, must consist of 0s and 1s.
- X
Matrix of covariates to adjust for. May be left as NULL.
- cens
Vector of event indicators for a survival outcome. 1 indicates a sample experienced the event, 0 otherwise. If not using a survival outcome, leave as NULL.
- K.list
List of 2 kernel matrices corresponding to similarities among connected components and among loops. May provide only 1 kernel matrix if interested in a specific homology.
- omega.list
Vector of weights to create different combinations of the kernel matrices. Some suggested options:
c(0, 1)
then TopKAT will combine the p-values for a test associating the connected components with y and the loops with y separately;c(0, 0.5, 1)
will combine p-values across just the connected components, an even split of connected components and loops, and just loops.- outcome.type
What kind of outcome is y? Options include "continuous", "binary", or "survival"
Value
Returns a list of the following objects: overall.pval: the overall p-value describing the association between similarities in topological structures and clinical outcomes, p.vals: the vector of individual p-values for each weight in omega.list, y: the outcome provided, X: the covariates provided, omega.list: the vector of weights provided, outcome.type: the outcome type specified
Examples
# First, construct the similarity matrix
simmat <- rips_similarity_matrix(data1.df, max.threshold = 100, print.progress = TRUE)
#> [1] "Rips diagram: 1"
#> [1] "Rips diagram: 2"
#> [1] "Rips diagram: 3"
#> [1] "Rips diagram: 4"
#> [1] "Rips diagram: 5"
#> [1] "Rips diagram: 6"
#> [1] "Rips diagram: 7"
#> [1] "Rips diagram: 8"
#> [1] "Rips diagram: 9"
#> [1] "Rips diagram: 10"
#> [1] "Rips diagram: 11"
#> [1] "Rips diagram: 12"
#> [1] "Rips diagram: 13"
#> [1] "Rips diagram: 14"
#> [1] "Rips diagram: 15"
#> [1] "Rips diagram: 16"
#> [1] "Rips diagram: 17"
#> [1] "Rips diagram: 18"
#> [1] "Rips diagram: 19"
#> [1] "Rips diagram: 20"
#> [1] "Rips diagram: 21"
#> [1] "Rips diagram: 22"
#> [1] "Rips diagram: 23"
#> [1] "Rips diagram: 24"
#> [1] "Rips diagram: 25"
#> [1] "Rips diagram: 26"
#> [1] "Rips diagram: 27"
#> [1] "Rips diagram: 28"
#> [1] "Rips diagram: 29"
#> [1] "Rips diagram: 30"
#> [1] "Rips diagram: 31"
#> [1] "Rips diagram: 32"
#> [1] "Rips diagram: 33"
#> [1] "Rips diagram: 34"
#> [1] "Rips diagram: 35"
#> [1] "Rips diagram: 36"
#> [1] "Rips diagram: 37"
#> [1] "Rips diagram: 38"
#> [1] "Rips diagram: 39"
#> [1] "Rips diagram: 40"
#> [1] "Rips diagram: 41"
#> [1] "Rips diagram: 42"
#> [1] "Rips diagram: 43"
#> [1] "Rips diagram: 44"
#> [1] "Rips diagram: 45"
#> [1] "Rips diagram: 46"
#> [1] "Rips diagram: 47"
#> [1] "Rips diagram: 48"
#> [1] "Rips diagram: 49"
#> [1] "Rips diagram: 50"
#> [1] "Rips diagram: 51"
#> [1] "Rips diagram: 52"
#> [1] "Rips diagram: 53"
#> [1] "Rips diagram: 54"
#> [1] "Rips diagram: 55"
#> [1] "Rips diagram: 56"
#> [1] "Rips diagram: 57"
#> [1] "Rips diagram: 58"
#> [1] "Rips diagram: 59"
#> [1] "Rips diagram: 60"
#> [1] "Rips diagram: 61"
#> [1] "Rips diagram: 62"
#> [1] "Rips diagram: 63"
#> [1] "Rips diagram: 64"
#> [1] "Rips diagram: 65"
#> [1] "Rips diagram: 66"
#> [1] "Rips diagram: 67"
#> [1] "Rips diagram: 68"
#> [1] "Rips diagram: 69"
#> [1] "Rips diagram: 70"
#> [1] "Rips diagram: 71"
#> [1] "Rips diagram: 72"
#> [1] "Rips diagram: 73"
#> [1] "Rips diagram: 74"
#> [1] "Rips diagram: 75"
#> [1] "Rips diagram: 76"
#> [1] "Rips diagram: 77"
#> [1] "Rips diagram: 78"
#> [1] "Rips diagram: 79"
#> [1] "Rips diagram: 80"
#> [1] "Rips diagram: 81"
#> [1] "Rips diagram: 82"
#> [1] "Rips diagram: 83"
#> [1] "Rips diagram: 84"
#> [1] "Rips diagram: 85"
#> [1] "Rips diagram: 86"
#> [1] "Rips diagram: 87"
#> [1] "Rips diagram: 88"
#> [1] "Rips diagram: 89"
#> [1] "Rips diagram: 90"
#> [1] "Rips diagram: 91"
#> [1] "Rips diagram: 92"
#> [1] "Rips diagram: 93"
#> [1] "Rips diagram: 94"
#> [1] "Rips diagram: 95"
#> [1] "Rips diagram: 96"
#> [1] "Rips diagram: 97"
#> [1] "Rips diagram: 98"
#> [1] "Rips diagram: 99"
#> [1] "Rips diagram: 100"
# Then, run TopKAT
res <- TopKAT(y = y,
cens = cens,
K.list = simmat$K.list,
omega.list = c(0, 0.5, 1),
outcome.type = "survival")
# Check result
res$overall.pval
#> [1] 3.443675e-05