NEW FEATURES
gene_set_enrichment() now returns a $GeneList as implemented by
@lahuuki. See details at
https://github.com/LieberInstitute/spatialLIBD/pull/119.NEW FEATURES
fetch_data() now provides access to all LFF_spatial_ERC project files
associated with the preprint at https://doi.org/10.1101/2025.11.20.689483.
@lahuuki added this information as part of
https://github.com/LieberInstitute/spatialLIBD/pull/118.NEW FEATURES
registration_pseudobulk() will now create the rowData()$gene_search if
rowData()$gene_id and rowData()$gene_name are present. This makes the output
be more in sync with requirements for run_app(). See
https://github.com/LieberInstitute/spatialLIBD/pull/115 for details.
Implemented by @lahuuki.BUG FIXES
registration_wrapper() which led to NULL
results for anova. See
https://github.com/LieberInstitute/spatialLIBD/pull/110 for details.SIGNIFICANT USER-VISIBLE CHANGES
registration_pseudobulk() to make it more compatible with
scran::pseudobulkDGE().See
https://github.com/LieberInstitute/spatialLIBD/pull/108 for details.NEW FEATURES
vis_image() for plotting just the histology image. See
https://github.com/LieberInstitute/spatialLIBD/pull/107 for details.SIGNIFICANT USER-VISIBLE CHANGES
registration_pseudobulk() has been expanded to further
explain the logcounts() assay. That is, to highlight that this assay
contains log2 CPM values computed with edgeR::cpm() and not log2 library-size
normalized counts (as computed with scuttle::logNormCounts()).
See https://support.bioconductor.org/p/9161754 and
https://github.com/LieberInstitute/spatialLIBD/issues/106 by @kinnaryshah
for more details.NEW FEATURES
guide_point_size as a argument to vis_clus() and
vis_grid_clus(), which allows controlling the size of the points in the
legends for the discrete variable plots. See
https://github.com/LieberInstitute/spatialLIBD/pull/104 for more details.BUG FIXES
vis_clus() and related
functions when NA values are present in the cluster variable. For more
details check https://github.com/LieberInstitute/spatialLIBD/pull/102.NEW FEATURES
gene_name argument to sig_genes_extract() and
sig_genes_extract_all() to make these functions more flexible.
See https://github.com/LieberInstitute/spatialLIBD/pull/101 for details.BUG FIXES
layer_stat_cor_plot() was having issues with cluster
names that were just numbers such as "1", "2", ..., "13" where
annotate_registered_clusters() could result in a "9/13" annotation but then
that would match with "1", "3", "9", and "13" instead of just "9" and "13", thus
introducing incorrect "X" annotations on layer_stat_cor_plot(). @lahuuki
resolved this at https://github.com/LieberInstitute/spatialLIBD/pull/99.NEW FEATURES
vis_gene() now has the cap_percentile argument as implemented by
@Nick-Eagles. This allows you to cap the expression values at a certain
percentiles, which can be useful to exclude super high outlier values which
are common with Visium HD data. See
https://github.com/LieberInstitute/spatialLIBD/pull/97 for details.BUG FIXES
layer_stat_cor_plot() thanks to @lahuuki. Details at
https://github.com/LieberInstitute/spatialLIBD/pull/94.BUG FIXES
HDF5Array objects.
See
https://github.com/LieberInstitute/spatialLIBD/commit/b80d92c3271a6ad92859f79a3bc343f77bad9bf2
for details.multi_gene_z_score(). See
https://github.com/LieberInstitute/spatialLIBD/commit/2d17ea2c3d1b73b38fbd50503765052c8487b9b1
for details. Implemented by @Nick-Eagles.run_app() for the example stitched data.BUG FIXES
add_qc_metrics() on the scuttle::isOutlier()
function calls.NEW FEATURES
gene_set_enrichment_plot() using
ComplexHeatmap::Heatmap(). This new version has several new arguments that
allow adding more annotation to the resulting heatmap. See
https://github.com/LieberInstitute/spatialLIBD/pull/93 for more details. This
also means that layer_matrix_plot() has been removed from the package since
it previously served as a helper function for gene_set_enrichment_plot().BUG FIXES
add_key() too strict and would create issues with export_cluster(). Reported
by @lahuuki and @manishabarse.BUG FIXES
registration_pseudobulk() more robust. The original issues were reported by
@boyiguo1 and @berniejmulvey.NEW FEATURES
layer_stat_cor_plot() with a version
that uses ComplexHeatmap::Heatmap() internally. It also adds support for
incorporating the automatic annotation results from
annotate_registered_clusters(). NOTE that the max argument was renamed to
color_max, as well as min to color_min. Also, the default for min used
to be -max and now for color_min the default is the min() correlation
observed. The default for max was 0.81 and the default for color_max() is
the max() observed correlation.run_app() was also updated to match the updated in layer_stat_cor_plot()
and now has 2 new inputs for controlling the annotation process with
annotate_registered_clusters(). It also allows downloading a CSV file with
the annotation results.BUG FIXES
registration_wrapper() now automatically handles the scenario where k = 2
by not using registration_stats_anova() and providing an apporpriate warning.
Implemented by @lahuuki at
https://github.com/LieberInstitute/spatialLIBD/pull/86.BUG FIXES
read10xVisiumWrapper() is now able to detect the GTF file used by
SpaceRanger for version 3.0.0+. Implemented by @nick-eagles at
https://github.com/LieberInstitute/spatialLIBD/pull/88.BUG FIXES
vis_grid_clus() not handling
logical() cluster variables.
See https://github.com/LieberInstitute/spatialLIBD/issues/80. To resolve this,
sort_clusters() and get_colors() had to change internally. Examples and
documentation for both functions have now been updated to showcase what happens
when you provide a logical() vector as an input.NEW FEATURES
add_qc_metrics() inspired by
https://github.com/LieberInstitute/Visium_SPG_AD/blob/master/code/07_spot_qc/01_qc_metrics_and_segmentation.R
which adds seven new columns to the colData(spe) that can be useful when
performing quality control of the data. Developed by @lahuuki.NEW FEATURES
SpatialExperiment objects created with
visiumStitched::build_spe()
https://research.libd.org/visiumStitched/reference/build_spe.html that
stitch together multiple Visium capture areas. Developed by @Nick-Eagles.SIGNIFICANT USER-VISIBLE CHANGES
vis_gene() now has a multi_gene_method argument which provides 3 methods
for combining multiple continuous variables: z_score, pca, and sparsity.
These options can now be used with run_app() (the interactive websites). These
methods are further illustrated and documented in a new vignette available at
https://research.libd.org/spatialLIBD/articles/multi_gene_plots.html. This
work was contributed by @Nick-Eagles.NEW FEATURES
vis_clus_p(), vis_clus(), and vis_grid_clus() now all use implement the
na_color argument that was present in the vis_gene() functions. This
resolves https://github.com/LieberInstitute/spatialLIBD/issues/43 by @boyiguo1.NEW FEATURES
run_app() now has a auto_crop_default argument set to TRUE by default.
It can be turned off in cases where you are displaying images that do not
follow the expected Visium grid dimensions, such as manually stitched images
that you don't want to automatically crop.NEW FEATURES
fetch_data("spatialDLPFC_Visium_example_subset") which is a subset
of 3 samples with only the lowres images that can be used for example /
tutorial purposes.NEW FEATURES
SIGNIFICANT USER-VISIBLE CHANGES
spatialDLFPC,
Visium_SPG_AD, and locus-c projects that were done by members of the
Keri Martinowich, Kristen R. Maynard, and Leonardo Collado-Torres LIBD teams as
well as our collaborators.SIGNIFICANT USER-VISIBLE CHANGES
fetch_data("Visium_SPG_AD_Visium_wholegenome_spe""),
fetch_data("Visium_SPG_AD_Visium_targeted_spe"),
fetch_data("Visium_SPG_AD_Visium_wholegenome_pseudobulk_spe"), and
fetch_data("Visium_SPG_AD_Visium_wholegenome_modeling_results") have been
added. Use this to access data from the
https://github.com/LieberInstitute/Visium_SPG_AD project.SIGNIFICANT USER-VISIBLE CHANGES
fetch_data("spatialDLPFC_snRNAseq") now works if you want to download
the snRNA-seq data used in http://research.libd.org/spatialDLPFC/.BUG FIXES
read10xVisiumAnalysis() now supports spaceranger version 2023.0208.0
(internal 10x Genomics version) output files that store analysis CSVs under the
outs/analysis_csv directory instead of outs/analysis and also use the
gene_expression_ prefix for each of the analysis directories. This was
tested with @heenadivecha on files from
https://github.com/LieberInstitute/spatial_DG_lifespan/blob/main/code/02_build_spe/01_build_spe.R.SIGNIFICANT USER-VISIBLE CHANGES
gene_set_enrichment() now internally uses
fisher.test(alternative = "greater") to test for odds ratios greater than 1.
Otherwise odds ratios of 0 could be significant.SIGNIFICANT USER-VISIBLE CHANGES
vis_gene(),
vis_clus() and related plotting functions. This was done with input from
@lahuuki and @nick-eagles and is described in more detail at
https://github.com/LieberInstitute/spatialLIBD/commit/8fa8459d8fa881d254824d43e52193bf2c3021c0.
Most noticeably, the aspect ratio is no longer stretched to fill the plotting
area, the NA values will be shown with a light grey that has alpha blending,
and the position of the legends has been made consistent between the plots.NEW FEATURES
frame_limits() and introduced the auto_crop argument
to vis_clus(), vis_gene() and all related functions. This new function
enables automatically cropping the image and thus adjusting the plotting area
which is useful in cases where the image is not centered and is not a square.
This was based on work by @lahuuki at
https://github.com/LieberInstitute/spatialDLPFC/blob/2dfb58db728c86875a86cc7b4999680ba1f34c38/code/analysis/99_spatial_plotting/01_get_frame_limits.R
and
https://github.com/LieberInstitute/spatialDLPFC/blob/ef2952a5a0098a36b09488ebd5e36a902bb11b48/code/analysis/99_spatial_plotting/vis_gene_crop.R.BUG FIXES
edgeR::filterByExpr() inside of
registration_pseudobulk().min_ncells filtering step to registration_pseudobulk() rather
than registration_wrapper() since you should drop low ncells before
using edgeR::filterByExpr().BUG FIXES
registration_stats_anova() in cases where we only had
two different unique values to compute F-statistics with, when we need at leastregistration_stats_anova() and
registration_stats_pairwise() more flexible.registration_model() now provides a more informative error message when you
have an empty factor level, thus leading to a non-full rank model matrix.NEW FEATURES
registration_wrapper() and related functions.layer_stat_cor() and for
labeling the clusters. This can help interpret the spatial registration results.
See annotate_registered_clusters() for more details.BUG FIXES
gene_set_enrichment() for reverse = TRUE reported by
@sparthib.reverse option on the shiny app under the gene set enrichment tab,
that we tested with the example spe data.SIGNIFICANT USER-VISIBLE CHANGES
SIGNIFICANT USER-VISIBLE CHANGES
point_size from 1.25 to 2.BUG FIXES
BUG FIXES
BUG FIXES
rownames(). Reported by @abspangler13 and @sparthib at
https://github.com/LieberInstitute/spatialLIBD/issues/33#issuecomment-1137544893SIGNIFICANT USER-VISIBLE CHANGES
layer-level data panel at run_app() has been
significantly increased. You can now also visualize more than 2 reduced
dimensions computed on the pseudo-bulk level data (layer-level for the Maynard
et al, Nature Neurosci, 2021 data).SIGNIFICANT USER-VISIBLE CHANGES
run_app() now offers the option to chose any of the paletteer::paletteer_d
color palettes for discrete variables.Polychrome has been replaced as a dependency by paletteer. Note that
Polychrome::palette36 is still the default.run_app() now looks for columns that end with '_colors' in their name
which can be used to pre-specify colors for any companion variables. For example
if you have spe$my_groups and spe$my_groups_colors then the second one
can specify the colors that will be used for visualizing spe$my_groups. This
makes specifying default colors more flexible than before, and the user is still
free to change them if necessary.BUG FIXES
layer_boxplot() where it was too specific to the Maynard et al
2021 data. We have made it more flexible now.gene_set_enrichment_plot() and
layer_matrix_plot().BUG FIXES
sig_genes_extract() when there's only one set of t-statistics
or F statistics to extract.SIGNIFICANT USER-VISIBLE CHANGES
vis_*() of SpatialLIBD in this version
match the Bioconductor 3.15 version of SpatialExperiment.
Note that if you used SpatialExperiment::read10xVisium(), the names of
the spatial coordinates changed at
https://github.com/drighelli/SpatialExperiment/commit/6710fe8b0a7919191ecce989bb6831647385ef5f
and thus you might need to switch them back if you created your
SpatialExperiment object before this change. You can do so with
spatialCoordsNames(spe) <- rev(spatialCoordsNames(spe)).
read10xVisiumWrapper() uses SpatialExperiment::read10xVisium() internally,
so this change on SpatialExperiment would then also affect you.NEW FEATURES
layer_stat_cor() has the top_n argument which can be used for
subsetting the marker genes prior to computing the correlation as part of the
spatial registration process.NEW FEATURES
add_key() function to reduce code duplication and resolve
https://github.com/LieberInstitute/spatialLIBD/issues/31.NEW FEATURES
BUG FIXES
NEW FEATURES
vis_gene_p(), vis_clus_p() and all related functions now have an argument
point_size which lets you control how big the points are plotted. This can
be useful for visualization purposes.5, then if you zoom in the clusters (interactive) panel, you can
see larger spots when zooming in.NEW FEATURES
BUG FIXES
vis_gene() and vis_grid_gene() now support geneids that are found in
the rownames(spe). This makese these functions more flexible.vis_grid_gene() and vis_grid_clus() now have the sample_order argument
which gives you more control in case you want to plot a subset of samples. This
should also reduced the memory required as discovered at
https://github.com/LieberInstitute/spatialDLPFC/issues/45.NEW FEATURES
image_id. Resolves
https://github.com/LieberInstitute/spatialLIBD/issues/25.alpha argument.
Resolves https://github.com/LieberInstitute/spatialLIBD/issues/20.magick package. Adds functions
img_edit(), img_update() and img_update_all() as well as new features
on the web application. Resolves
https://github.com/LieberInstitute/spatialLIBD/issues/21.export_cluster() and import_cluster() to help export/import
clustering results instead of having to save large spe objects when
exploring different clustering methods.locate_images() and add_images() for adding non-standard images
to a spe object.BUG FIXES
shiny. This version of
spatialLIBD works with shiny version 1.7.1, though it's likely backwards
compatible. Resolves https://github.com/LieberInstitute/spatialLIBD/issues/24.as.data.frame(colData(spe)) uses check.names = TRUE by
default and then changes the column names unintentionally.NEW FEATURES
read10xVisiumWrapper() and related functions that make it easier
to read in the SpaceRanger output files and launch a shiny web application
using run_app(). These new functions read in the analysis output from
SpaceRanger by 10x Genomics, in particular, the clustering and dimension
reduction (projection) results.SIGNIFICANT USER-VISIBLE CHANGES
spatialLIBD has been updated to work with SpatialExperiment version
1.1.701 which will be released as part of Bioconductor 3.13. This changes
internal code of spatialLIBD which will work with any objects created with
SpatialExperiment version 1.1.700.SIGNIFICANT USER-VISIBLE CHANGES
spatialLIBD has a bioRxiv
pre-print at https://www.biorxiv.org/content/10.1101/2021.04.29.440149v1.SIGNIFICANT USER-VISIBLE CHANGES
plotly::toWebGL() to make the web application more responsive.SIGNIFICANT USER-VISIBLE CHANGES
NEW FEATURES
spatialLIBD with any
10x Genomics Visium dataset processed with spaceranger. The vignette uses
the publicly available human lymph node example from the 10x Genomics website.NEW FEATURES
SpatialExperiment version
1.1.427 available on Bioconductor 3.13 (bioc-devel). Several functions
were re-named such as sce_image_gene_p() now has a shorter name
vis_gene_p(). This update also changes these visualization functions to ONLY
support SpatialExperiment objects instead of the original modified
SingleCellExperiment objects.NEW FEATURES
sce_image_gene_p(), sce_image_gene(), sce_image_grid(),
sce_image_grid_gene(), sce_image_clus(), sce_image_clus_p(),
geom_spatial() now work with VisiumExperiment objects thanks to the new
function read_image() and ve_image_colData(). This work was done by Brenda Pardo and Leonardo.NEW FEATURES
fetch_data() takes the data from sce object and creates a VisiumExperiment
object containing these data thanks to the function sce_to_ve(). VisiumExperiment object can be obtained with
fetch_data("ve"). This work was done by Brenda Pardo and Leonardo.NEW FEATURES
fetch_data() now uses BiocFileCache() when downloading the data from
Dropbox.SIGNIFICANT USER-VISIBLE CHANGES
enough_ram() which is used to control the execution of
examples. If it fails when using fetch_data("sce") then fetch_data() will
show a warning.fetch_data(type = "sce_example") is now supported and used visibly in the
vignette, eliminating the need for eval = FALSE chunks. This should enable
testing the vignette code on the Bioconductor Single Package Builder on
Windows (max 2.5 GB of RAM available).BUG FIXES
get_colors().layer_stat_cor_plot() for when min and/or max are specified.SIGNIFICANT USER-VISIBLE CHANGES
BUG FIXES
system2() instead of system().set.seed() call outside of layer_boxplot() as noted by
Martin Morgan
https://github.com/Bioconductor/Contributions/issues/1389#issuecomment-594099852
.\linkS4class as I see being done at
https://github.com/drisso/SingleCellExperiment/search?q=linkS4class&unscoped_q=linkS4class.vapply() instead of sapply().BUG FIXES
RcppAnnoy line in the DESCRIPTION actually works now
based on Aaron Lun's comment at
https://github.com/eddelbuettel/rcppannoy/issues/57#issuecomment-594097241.SIGNIFICANT USER-VISIBLE CHANGES
BUG FIXES
fetch_data() and the vignette by specifying the mode = "wb" for
utils::download.file() in order to resolve an issue with Windows OS reported
here http://bioconductor.org/spb_reports/spatialLIBD_buildreport_20200302120158.html#tokay2_buildsrc_anchor.SIGNIFICANT USER-VISIBLE CHANGES
SIGNIFICANT USER-VISIBLE CHANGES
BUG FIXES
SIGNIFICANT USER-VISIBLE CHANGES
SIGNIFICANT USER-VISIBLE CHANGES
fetch_data() more flexible. Should now work when the data is absent.BUG FIXES
SIGNIFICANT USER-VISIBLE CHANGES
SIGNIFICANT USER-VISIBLE CHANGES
NEW FEATURES
NEW FEATURES
NEWS.md file to track changes to the package.ExperimentHub::ExperimentHub() functionality won't work until they
approve the package. However, for now fetch_data() has a backup mechanism
in place.