simulate_background_cells.Rd
Simulate cell locations. The 2D locations of the cells are simulated and plotted in a rectangular window. Users can specify the window size, cell number and the minimum distance between two cells. All cells have the same cell type, specified by the "Cell.Type" param.
simulate_background_cells(
n_cells,
width,
height,
method = "Hardcore",
min_d,
oversampling_rate = 1.2,
jitter = 0.3,
Cell.Type = "Others",
plot_image = TRUE
)
Numeric. Number of cells to simulate in the background.
Numeric. The width and height of the image.
String. The distribution model for the background cells. Options are "Hardcore" for tumour tissues and "Even" for normal tissues. Default is "Hardcore".
(OPTIONAL) Numeric. Use when method
is "Hardcore". The minimum
distance between two cells.
(OPTIONAL) Numeric. Use when method
is "Hardcore".
The multiplier for oversampling. Without oversampling, the simulation
deletes cells that are within min_d
from each other, resulting in a less
total number of cells than n_cells
. Default is 1.2 (this should be set
based on n_cells
and min_d
; should always be larger than 1).
(OPTIONAL) Numeric. Use when method
is "Even". The uniform
distribution parameter to generate the jitter distance for each cell from
the vertices of the hexagon.
(OPTIONAL) String. The name of the background cell type. Default is "Others" since there shouldn't be any identity of the background cells.
(OPTIONAL) Boolean. Default is TRUE.
A data.frame of the simulated background image
There are two options for the background cell distribution model. 1)
Hardcore model for tumour tissues. This model uses rHardcore
spatstat.random
. Since rHardcore
deletes cells that are within the
distance of min_d
to another cell, resulting in fewer cell specified by
users, we here introduce parameter oversampling_rate
to generate more
cells than specified. 2) Normal tissues use an evenly-spaced model where
the cells are distributed approximately according to the vertices of a
hexagon. The function accomplishes this by generating cells on a hexagonal
grid and individually applying a bounded uniform random jitter. In our
algorithm, jitter
is the parameter to define the uniform distribution of
the jitter of the cells from the hexagon vertices. If there is a reference
image, jitter
can be estimated by comparing the average minimum distance
between cells of the simulated image and the reference image. If without a
reference image, We suggest 0.3 as the default value of jitter
as this
gives a sensible outcome.
simulate_mixing
for mixed background simulation,
simulate_clusters
for cluster simulation,
simulate_immune_rings
/simulate_double_rings
for
immune ring simulation, and simulate_stripes
for vessel
simulation.
Other simulate pattern functions:
simulate_clusters()
,
simulate_double_rings()
,
simulate_immune_rings()
,
simulate_mixing()
,
simulate_stripes()
set.seed(610) # set seed for this background image simulation for reproducibility
background_image <- simulate_background_cells(n_cells = 5000, width = 2000,
height = 2000, method = "Hardcore",
min_d = 10,
oversampling_rate = 1.5,
Cell.Type = "Others",
plot_image = TRUE)