Identifies cell-to-cell Interaction Changed Features (ICF),
i.e. features that are differentially expressed due to proximity to other
cell types. This function is appropriate for single-cell level data. For
data from spot-based spatial assays or spatially binned data, see
findICFSpot()
, which runs on top of DWLS results or similar spot-level
cell-type enrichment outputs
findInteractionChangedFeats(
gobject,
feat_type = NULL,
spat_unit = NULL,
expression_values = "normalized",
selected_feats = NULL,
cluster_column,
spatial_network_name = "Delaunay_network",
minimum_unique_cells = 1,
minimum_unique_int_cells = 1,
diff_test = c("permutation", "limma", "t.test", "wilcox"),
mean_method = c("arithmic", "geometric"),
offset = 0.1,
adjust_method = c("bonferroni", "BH", "holm", "hochberg", "hommel", "BY", "fdr",
"none"),
nr_permutations = 1000,
exclude_selected_cells_from_test = TRUE,
do_parallel = TRUE,
set_seed = TRUE,
seed_number = 1234
)
findICF(
gobject,
feat_type = NULL,
spat_unit = NULL,
expression_values = "normalized",
selected_feats = NULL,
cluster_column,
spatial_network_name = "Delaunay_network",
minimum_unique_cells = 1,
minimum_unique_int_cells = 1,
diff_test = c("permutation", "limma", "t.test", "wilcox"),
mean_method = c("arithmic", "geometric"),
offset = 0.1,
adjust_method = c("bonferroni", "BH", "holm", "hochberg", "hommel", "BY", "fdr",
"none"),
nr_permutations = 1000,
exclude_selected_cells_from_test = TRUE,
do_parallel = TRUE,
set_seed = TRUE,
seed_number = 1234
)
giotto object
feature type
spatial unit
expression values to use
subset of selected features (optional)
name of column to use for cell types
name of spatial network to use
minimum number of target cells required
minimum number of interacting cells required
which differential expression test
method to use to calculate the mean
offset value to use when calculating log2 ratio
which method to adjust p-values
number of permutations if diff_test = permutation
exclude interacting cells other cells
run calculations in parallel with mclapply
set a seed for reproducibility
seed number
icfObject
that contains the Interaction Changed differential
feature scores
Function to calculate if features are differentially expressed in
cell types when they interact (approximated by physical proximity) with
other cell types. The results data.table in the icfObject
contains
at least - the following columns:
features: All or selected list of tested features
sel: average feature expression in the interacting cells from the target cell type
other: average feature expression in the NOT-interacting cells from the target cell type
log2fc: log2 fold-change between sel and other
diff: spatial expression difference between sel and other
p.value: associated p-value
p.adj: adjusted p-value
cell_type: target cell type
int_cell_type: interacting cell type
nr_select: number of cells for selected target cell type
int_nr_select: number of cells for interacting cell type
nr_other: number of other cells of selected target cell type
int_nr_other: number of other cells for interacting cell type
unif_int: cell-cell interaction
g <- GiottoData::loadGiottoMini("visium")
#> 1. read Giotto object
#> 2. read Giotto feature information
#> 3. read Giotto spatial information
#> 3.1 read Giotto spatial shape information
#> 3.2 read Giotto spatial centroid information
#> 3.3 read Giotto spatial overlap information
#> 4. read Giotto image information
#> python already initialized in this session
#> active environment : '/usr/bin/python3'
#> python version : 3.10
#> checking default envname 'giotto_env'
#> a system default python environment was found
#> Using python path:
#> "/usr/bin/python3"
icf1 <- findInteractionChangedFeats(g,
cluster_column = "leiden_clus",
selected_feats = c("Gna12", "Ccnd2", "Btbd17"),
nr_permutations = 10
)
#> Error in loadNamespace(x): there is no package called ‘future.apply’
force(icf1)
#> Error: object 'icf1' not found
force(icf1$ICFscores)
#> Error: object 'icf1' not found
# this is just an alias with a shorter name
icf2 <- findICF(g,
cluster_column = "leiden_clus",
selected_feats = c("Gna12", "Ccnd2", "Btbd17"),
nr_permutations = 10
)
#> Error in loadNamespace(x): there is no package called ‘future.apply’