This function visualizes the gene expression stored in assays(spe)
or any
continuous variable stored in colData(spe)
for one given sample at the
spot-level using (by default) the histology information on the background.
This is the function that does all the plotting behind vis_gene()
To visualize clusters (or any discrete variable) use vis_clus_p()
.
vis_gene_p(
spe,
d,
sampleid = unique(spe$sample_id)[1],
spatial,
title,
viridis = TRUE,
image_id = "lowres",
alpha = NA,
cont_colors = if (viridis) viridisLite::viridis(21) else c("aquamarine4",
"springgreen", "goldenrod", "red"),
point_size = 2,
auto_crop = TRUE,
na_color = "#CCCCCC40",
legend_title = ""
)
A
SpatialExperiment-class
object. See fetch_data()
for how to download some example objects or
read10xVisiumWrapper()
to read in spaceranger --count
output files and
build your own spe
object.
A data.frame()
with the sample-level information. This is
typically obtained using cbind(colData(spe), spatialCoords(spe))
.
The data.frame
has to contain
a column with the continuous variable data to plot stored under d$COUNT
.
A character(1)
specifying which sample to plot from
colData(spe)$sample_id
(formerly colData(spe)$sample_name
).
A logical(1)
indicating whether to include the histology
layer from geom_spatial()
. If you plan to use
ggplotly() then it's best to set this to FALSE
.
The title for the plot.
A logical(1)
whether to use the color-blind friendly
palette from viridis or the color palette used
in the paper that was chosen for contrast when visualizing the data on
top of the histology image. One issue is being able to differentiate low
values from NA ones due to the purple-ish histology information that is
dependent on cell density.
A character(1)
with the name of the image ID you want to
use in the background.
A numeric(1)
in the [0, 1]
range that specifies the
transparency level of the data on the spots.
A character()
vector of colors that supersedes the
viridis
argument.
A numeric(1)
specifying the size of the points. Defaults
to 1.25
. Some colors look better if you use 2
for instance.
A logical(1)
indicating whether to automatically crop
the image / plotting area, which is useful if the Visium capture area is
not centered on the image and if the image is not a square.
A character(1)
specifying a color for the NA values.
If you set alpha = NA
then it's best to set na_color
to a color that has
alpha blending already, which will make non-NA values pop up more and the NA
values will show with a lighter color. This behavior is lost when alpha
is
set to a non-NA
value.
A character(1)
specifying the legend title.
A ggplot2 object.
Other Spatial gene visualization functions:
vis_gene()
,
vis_grid_gene()
if (enough_ram()) {
## Obtain the necessary data
if (!exists("spe")) spe <- fetch_data("spe")
## Prepare the data for the plotting function
spe_sub <- spe[, spe$sample_id == "151673"]
df <- as.data.frame(cbind(colData(spe_sub), SpatialExperiment::spatialCoords(spe_sub)), optional = TRUE)
df$COUNT <- df$expr_chrM_ratio
## Don't plot the histology information
p <- vis_gene_p(
spe = spe_sub,
d = df,
sampleid = "151673",
title = "151673 chrM expr ratio",
spatial = FALSE
)
print(p)
## Clean up
rm(spe_sub)
}
#> 2024-12-16 21:53:14.933816 loading file /github/home/.cache/R/BiocFileCache/10535bcd9c3d_Human_DLPFC_Visium_processedData_sce_scran_spatialLIBD.Rdata%3Fdl%3D1