This is a batch version of count_within. Given the path to a directory containing cell seg data files, 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_batch(base_path, pairs, radius, category = NA,
  phenotype_rules = NULL, verbose = TRUE)

Arguments

base_path

Path to a directory containing at least one _cell_seg_data.txt file.

pairs

A list of pairs of phenotypes. Each entry is a two-element vector. The result will contain values for each pair.

radius

The radius or radii to search within.

category

Optional tissue categories to restrict both from and to phenotypes.

phenotype_rules

(Optional) A named list. Item names are phenotype names and must match entries in pairs. Item values are selectors for select_rows.

verbose

If TRUE, display progress.

Value

A data_frame containing these columns:

slide_id

Slide ID from the data files, if available.

source

Base file name of the source file with _cell_seg_data.txt stripped off for brevity.

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.

Details

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.

See also

Other distance functions: compute_all_nearest_distance, count_touching_cells, count_within, distance_matrix, find_nearest_distance, spatial_distribution_report, subset_distance_matrix

Examples

base_path <- sample_cell_seg_folder() # 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_batch(base_path, pairs, radius, category)
#> Processing Set4_1-6plex_[16142,55840]
#> # 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-6~ Set4_1-6~ Tumor CK+ CD68+ 10. 2192 101 79 #> 2 Set4_1-6~ Set4_1-6~ Tumor CK+ CD68+ 25. 2192 101 397 #> 3 Set4_1-6~ Set4_1-6~ Tumor CK+ CD8+ 10. 2192 51 63 #> 4 Set4_1-6~ Set4_1-6~ Tumor CK+ CD8+ 25. 2192 51 320 #> 5 Set4_1-6~ Set4_1-6~ Stroma CK+ CD68+ 10. 65 316 6 #> 6 Set4_1-6~ Set4_1-6~ Stroma CK+ CD68+ 25. 65 316 34 #> 7 Set4_1-6~ Set4_1-6~ Stroma CK+ CD8+ 10. 65 177 4 #> 8 Set4_1-6~ Set4_1-6~ 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_batch(base_path, pairs, radius, phenotype_rules=rules)
#> Processing Set4_1-6plex_[16142,55840]
#> # 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-6~ Set4_1-6~ all CK+ T ce~ 10. 2257 456 150 #> 2 Set4_1-6~ Set4_1-6~ all CK+ T ce~ 25. 2257 456 824 #> # ... with 1 more variable: within_mean <dbl>