R/average_counts.R
count_within_many.Rd
This is a wrapper around count_within()
which supports counting
multiple phenotype pairs and tissue categories within a single field.
For each given tissue category, pair of
'from' phenotype and 'to' phenotype, and radius, it counts the number of
'from' cells
having a 'to' cell within radius
microns.
count_within_many(
csd,
pairs,
radius,
category = NA,
phenotype_rules = NULL,
verbose = TRUE
)
A cell seg data table.
A list of pairs of phenotypes. Each entry is a two-element vector. The result will contain values for each pair.
The radius or radii to search within.
Optional tissue categories to restrict both from
and
to
phenotypes.
(Optional) A named list.
Item names are phenotype names and must match entries in pairs
.
Item values are selectors for select_rows()
.
If TRUE, display progress.
A tibble
containing these columns:
slide_id
Slide ID from the data, if available.
source
Source field name.
field
Name of the individual field, if available.
category
Tissue category, if provided as a parameter, or "all".
from
From phenotype.
to
To phenotype.
radius
, from_count
, to_count
,
from_with
, within_mean
Results from count_within for this data file and tissue category.
The category
parameter may be a single category or a list of categories.
See the tutorial
Selecting cells within a cell segmentation table
for more on
the use of pairs
and phenotype_rules
.
Other distance functions:
compute_all_nearest_distance()
,
count_touching_cells()
,
count_within_batch()
,
count_within()
,
distance_matrix()
,
find_nearest_distance()
,
spatial_distribution_report()
,
subset_distance_matrix()
csd <- sample_cell_seg_data
# Count tumor cells near macrophages, and tumor cells near CD8 separately,
# in tumor and stroma tissue categories separately.
pairs <- list(c('CK+', 'CD68+'),
c('CK+', 'CD8+'))
radius <- c(10, 25)
category <- list('Tumor', 'Stroma')
count_within_many(csd, pairs, radius, category)
#> Processing Set4_1-6plex_[16142,55840].im3
#> # A tibble: 8 x 10
#> slide_id source category from to radius from_count to_count from_with
#> <chr> <chr> <chr> <chr> <chr> <dbl> <int> <int> <int>
#> 1 Set4_1-6plex Set4_1~ Tumor CK+ CD68+ 10 2192 101 79
#> 2 Set4_1-6plex Set4_1~ Tumor CK+ CD68+ 25 2192 101 397
#> 3 Set4_1-6plex Set4_1~ Tumor CK+ CD8+ 10 2192 51 63
#> 4 Set4_1-6plex Set4_1~ Tumor CK+ CD8+ 25 2192 51 320
#> 5 Set4_1-6plex Set4_1~ Stroma CK+ CD68+ 10 65 316 6
#> 6 Set4_1-6plex Set4_1~ Stroma CK+ CD68+ 25 65 316 34
#> 7 Set4_1-6plex Set4_1~ Stroma CK+ CD8+ 10 65 177 4
#> 8 Set4_1-6plex Set4_1~ Stroma CK+ CD8+ 25 65 177 22
#> # ... with 1 more variable: within_mean <dbl>
# Count tumor cells near any T cell in all tissue categories.
# Use `phenotype_rules` to define the T cell phenotype
pairs <- c('CK+', 'T cell')
rules <- list(
'T cell'=c('CD8+', 'FoxP3+'))
count_within_many(csd, pairs, radius, phenotype_rules=rules)
#> Processing Set4_1-6plex_[16142,55840].im3
#> # A tibble: 2 x 10
#> slide_id source category from to radius from_count to_count from_with
#> <chr> <chr> <chr> <chr> <chr> <dbl> <int> <int> <int>
#> 1 Set4_1-6plex Set4_1~ all CK+ T ce~ 10 2257 456 150
#> 2 Set4_1-6plex Set4_1~ all CK+ T ce~ 25 2257 456 824
#> # ... with 1 more variable: within_mean <dbl>