Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
figs.out = "../figures"
)
invisible(suppressPackageStartupMessages(library(tidyverse)))
## ----setup--------------------------------------------------------------------
library(mxfda)
library(tidyverse)
## -----------------------------------------------------------------------------
data(lung_df)
## ----object-------------------------------------------------------------------
clinical = lung_df %>%
select(image_id, patient_id, patientImage_id, gender, age, survival_days, survival_status, stage) %>%
distinct()
spatial = lung_df %>%
select(-image_id, -gender, -age, -survival_days, -survival_status, -stage)
mxFDAobject = make_mxfda(metadata = clinical,
spatial = spatial,
subject_key = "patient_id",
sample_key = "patientImage_id")
## -----------------------------------------------------------------------------
class(mxFDAobject)
## ----univariate_k-------------------------------------------------------------
mxFDAobject = extract_summary_functions(mxFDAobject,
extract_func = univariate,
summary_func = Kest,
r_vec = seq(0, 100, by = 1),
edge_correction = "iso",
markvar = "immune",
mark1 = "immune")
## -----------------------------------------------------------------------------
mxFDAobject@univariate_summaries$Kest
## -----------------------------------------------------------------------------
plot(mxFDAobject, y = "fundiff", what = "uni k") +
geom_hline(yintercept = 0, color = "red", linetype = 2)
## -----------------------------------------------------------------------------
lung_df = lung_df %>%
mutate(phenotype = case_when(phenotype_cd8 == "CD8+" ~ "T-cell",
phenotype_cd14 == "CD14+" ~ "macrophage",
TRUE ~ "other"),
phenotype = factor(phenotype))
## -----------------------------------------------------------------------------
spatial = lung_df %>%
select(-image_id, -gender, -age, -survival_days, -survival_status, -stage)
mxFDAobject = make_mxfda(metadata = clinical,
spatial = spatial,
subject_key = "patient_id",
sample_key = "patientImage_id")
## -----------------------------------------------------------------------------
mxFDAobject = extract_summary_functions(mxFDAobject,
summary_func = Gcross,
extract_func = bivariate,
r_vec = seq(0, 100, by = 1),
edge_correction = "rs",
markvar = "phenotype",
mark1 = "T-cell",
mark2 = "macrophage")
## -----------------------------------------------------------------------------
plot(mxFDAobject, y = "fundiff", what = "bi g") +
geom_hline(yintercept = 0, color = "red", linetype = 2)
## ----eval = FALSE-------------------------------------------------------------
# #load in lung DF
# data(lung_df)
# #filter to only the clinical information
# clinical = lung_df %>%
# select(image_id, patient_id, patientImage_id, gender, age, survival_days, survival_status, stage) %>%
# distinct()
# #filter to cell information
# spatial = lung_df %>%
# select(-image_id, -gender, -age, -survival_days, -survival_status, -stage)%>%
# mutate(phenotype = case_when(phenotype_cd8 == "CD8+" ~ "T-cell",
# phenotype_cd14 == "CD14+" ~ "macrophage",
# TRUE ~ "other"),
# phenotype = factor(phenotype))
# #create the mxfda object
# mxFDAobject = make_mxfda(metadata = clinical,
# spatial = spatial,
# subject_key = "patient_id",
# sample_key = "patientImage_id")
# #run entropy
# mxFDAobject = extract_summary_functions(mxFDAobject,
# extract_func = bivariate,
# summary_func = entropy,
# r_vec = seq(0, 100, by = 1),
# edge_correction = "iso",
# markvar = "phenotype",
# mark1 = "T-cell",
# mark2 = "macrophage")
# #plot
# mxFDAobject@bivariate_summaries$entropy %>%
# ggplot() +
# geom_line(aes(x = r, y = spatial_entropy,
# group = patientImage_id, color = patientImage_id),
# alpha = 0.2) +
# theme(legend.position = "none")
## ----summary------------------------------------------------------------------
mxFDAobject
## -----------------------------------------------------------------------------
#Step 1
spatialTIME_spatial_df = spatial %>%
select(-phenotype) %>%
mutate(across(phenotype_ck:phenotype_cd4, ~ ifelse(grepl("\\+", .x), 1, 0))) %>%
relocate(patientImage_id, .before = 1)
#Step 2
cell_types = colnames(spatialTIME_spatial_df) %>% grep("phenotype", ., value = TRUE)
#Step 3
spatial_list = split(spatialTIME_spatial_df, spatial$patientImage_id)
#Step 4
summary_data = lapply(spatial_list, function(df){
df %>%
#group by sample ID to maintain ID column
group_by(patient_id, patientImage_id) %>%
#find number of positive
reframe(across(!!cell_types, ~ sum(.x)),
`Total Cells` = n()) %>%
#calculate proportion
mutate(across(!!cell_types, ~.x/`Total Cells` * 100, .names = "{.col} %"))
}) %>%
#bind the rows together
do.call(bind_rows, .)
## -----------------------------------------------------------------------------
library(spatialTIME)
#make mif
mif = create_mif(clinical_data = clinical,
sample_data = summary_data,
spatial_list = spatial_list[1:50],
patient_id = "patient_id",
sample_id = "patientImage_id")
## -----------------------------------------------------------------------------
mif = NN_G(mif, mnames = cell_types[c(2, 6)],
r_range = 0:100, num_permutations = 10,
edge_correction = "rs", keep_perm_dis = FALSE,
workers = 1, overwrite = TRUE, xloc = "x", yloc = "y")
## -----------------------------------------------------------------------------
mif$derived$univariate_NN %>%
ggplot() +
geom_line(aes(x = r, y = `Degree of Clustering Permutation`, color = patientImage_id), alpha = 0.4) +
facet_grid(~Marker) +
theme(legend.position = "none")
## -----------------------------------------------------------------------------
uni_g = mif$derived$univariate_NN %>%
filter(grepl("cd8", Marker))
## -----------------------------------------------------------------------------
#make mxFDA object
mxFDA_spatialTIME = make_mxfda(metadata = clinical,
spatial = NULL,
subject_key = "patient_id",
sample_key = "patientImage_id")
#add summary data
mxFDA_spatialTIME = add_summary_function(mxFDAobject,
summary_function_data = uni_g,
metric = "uni g")
## -----------------------------------------------------------------------------
plot(mxFDA_spatialTIME, y = "Degree of Clustering Permutation", what = "uni g")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.