output_width and
output_height to the Iterate_* family of
plotting functions (#217).Random_Cells_Downsample that prevented
setting identity using the group.by parameter.Cell_Highlight_Plot that didn’t pass the
reduction parameter properly (#216).return_plots in
iterative plotting functions(#217).Major Updates to Functionality with rliger
Package:
Added new utility functions to interact with liger v2.0.0+ object
format change:
- Subset_LIGER to quickly subset by cluster or other meta
data variable.
- Cells_by_Identities_LIGER to extract list of barcodes
sorted by values within given meta data column.
Extended the following Seurat/SeuratObject generic functions to
work seamlessly with liger objects:
- Cells to extract vector of all cells or list vectors of
cells by dataset.
- Features to extract vector of all features or list
vectors of features by dataset.
- WhichCells to extract vector or list of cells matching
identity criteria.
- Embeddings to extract matrix containing dimensionality
reduction embeddings or iNMF h.norm matrix.
- Idents and Idents<- to extract and set
default identities/clusters.
Updated functions to interact with both old and new style liger
objects:
- plotFactors_scCustom()
- Fetch_Meta
- Top_Genes_Factor
- Add_Mito_Ribo
- Add_Cell_Complexity
- DimPlot_LIGER
- Variable_Features_ALL_LIGER
- Feature_Present
New functions compatible with old and new style liger
objects:
- Added new function Add_Hemo to add hemoglobin gene
percentage for QC. Also added as parameter to
Add_Cell_QC_Metrics. Add_Hemo supports all
default species: (human, mouse, marmoset, zebrafish, rat, drosophila,
rhesus macaque, and chicken) and works with both Seurat and liger
objects.
New scCustomize generics to function across both Seurat and Liger
objects:
- Add_Hemo (see above).
- Rename_Clusters now S3 generic for setting new
active.ident (Seurat) or defaultCluster (Liger).
New functions for Seurat and rliger v2.0.0+ only:
- Added new function Find_Factor_Cor to return correlation
matrix between factor gene loadings from liger or Seurat object.
- Added new function Factor_Cor_Plot to plot positive
correlations from liger or Seurat object.
Updated functions to recommend new rliger equivalents for users
with rliger v2.0.0+:
- as.LIGER
- as.Seurat
General scCustomize Updates:
New functions:
- Added new function Add_Hemo to add hemoglobin gene
percentage for QC. Also added as parameter to
Add_Cell_QC_Metrics. Add_Hemo supports all
default species: (human, mouse, marmoset, zebrafish, rat, drosophila,
and rhesus macaque) and works with both Seurat and liger objects.
- Added new function seq_zeros() to create sequences with
preceding zeros.
- Added new function Read_Metrics_CellBender to read in the
summary metrics csv file produced by CellBender. Can either read all
metrics files from parent directory of output folders or a single
metrics file.
- Added Updated_MGI_Symbols to check for update gene
names/symbols in mouse data (#202).
- Added plotting function Proportion_Plot to plot pie chart
or bar chart of proportion (or total counts) of cells in each identity
class.
- Added new function Random_Cells_Downsample to return
either a vector or list with randomly downsampled cells for each
identity class.
- Added new function Cells_per_Sample to quickly return
data.frame with just number of cells per sample.
Updated functions:
- Added new parameters data_name and overwrite
to Add_Alt_Feature_ID to support new storage
location.
- Added cells parameter explicitly to
FeatureScatter_scCustom.
- Added Chicken (Gallus gallus) to default species for QC functions.
Thanks @dpearton;
(#176).
- Added new plotting function SpatialDimPlot_scCustom.
Thanks for encouragement @puapinyoying @nina-hahn (#160).
- Added ability of Read_Metrics_10X to read a single
metrics csv file and return data formatted the same way as when reading
multiple files.
- Added parameter cutoff_line_width to the
QC_Plot_* family of plots to control line thickness of
cutoff lines.
- Cluster_Stats_All_Samples now returns data.frame with row
order reflecting the frequency of cells.
- Add_Mito_Ribo now supports datasets aligned to
multi-species reference genomes (#184).
- Added parameter add_prop_plot to
DimPlot_scCustom to return plot showing number or percent
of cells per identity along with the DimPlot.
- Added optional parameter colors_use_assay2 to
FeaturePlot_DualAssay which allows for specification of
different palettes for the two plots (#182).
- Added new folder and scripts (see “data-raw/” on GitHub) detailing the
creation of gene lists used in Add_Cell_QC_Metrics.
- Added ensembl ID support for percent hemoglobin, msigdb, and IEG gene
sets (#186).
- Add verbosity parameter to Store_Misc_Info_Seurat and
Store_Palette_Seurat.
- Explicitly reveal the reduction parameter in
Cluster_Highlight_Plot and Meta_Highlight_Plot
(#198).
- Added show_row_names show_column_names,
column_names_side, row_names_side,
legend_position, legend_orientation,
show_ident_legend, and show_ident_colors
parameters to Clustered_DotPlot. Thanks for idea and code
@johnminglu (#199).
- Updated Split_Vector to allow user to specify number of
chunks or size of chunks for splitting vector.
- Update RenameClusters with additional parameters to
enable storage of both old idents and new idents in meta.data within the
function.
- Update Add_Cell_QC_Metrics.Seurat to explicitly reveal
list_species_names parameter.
- Added new vignette for spatial plotting.
- Added new and expanded vignette on use of object QC functions for
better clarity on these functions and their uses (previously was part of
QC Plotting & Helpers/Utilities Vignettes). Plotting elements of QC
Plotting vignette are unchanged.
Add_Top_Gene_Pct_Seurat is now S3 generic that works with
both Seurat and liger objects and has been renamed
Add_Top_Gene_Pct.Add_Cell_QC_Metrics is now S3 generic and works with
both Seurat and liger objects.Add_Alt_Feature_ID to
@misc slot of object for safer storage across object
filtering.as.anndata to explicitly check for
installation of anndata before starting conversion (#162).Plot_Median_Genes,
Plot_Median_UMIs, Plot_Median_Mito,
Plot_Median_Other, Plot_Cells_per_Sample to
understand “ident” as grouping variable.Store_Misc_Info_Seurat to use Seurat
accessor/setter function Seurat::Misc().sample_names in
Read_CellBender_h5_Multi_File to clarify parameter behavior
(related to (#208)).Read_Metrics_10X to support adjusts to metrics
summary format and metric names in output from Cell Ranger v9+.Plot_Density_Custom and
Plot_Density_Joint_Only have been re-enabled for users with
ggplot2 v3.5.0 following Nebulosa v1.12.1 update patch.Add_Cell_QC_Metrics when
overwrite = TRUE (#165).DotPlot_scCustom (#158).as.anndata from
Seurat conversion that previously caused failures (#168).Create_Cluster_Annotation_File if for
file path and csv name errors.plot_median and more than one
feature in VlnPlot_scCustom (#169).DimPlot_scCustom
due to changes in guides updated with ggplot2 v3.5.0 (#171).Add_Sample_Meta that still errored when
setting na_ok = TRUE.Plot_Median_* family that caused issues
when group_by parameter was NULL.FeaturePlot_scCustom when setting
combine = FALSE.DimPlot_scCustom that could cause blank
plot when rasterizing points.MAD_Stats that didn’t respect
mad_num parameter (#183).MAD_Stats that could cause issues if
mad_num was less than or equal to 0 and returned error if
setting group_by_var to “ident”.all_of/any_of syntax.Cluster_Highlight_Plot with split.by parameter
(#201).Convert_Assay (#205).Updated_HGNC_Symbols due to change in
URL path for gene names (#209).DimPlot_scCustom when
split.by and label.box = TRUE.DiscretePalette_scCustom that didn’t error
when supplying invalid palette names.DimPlot_LIGER that provided uniformative
error message when changing the default cluster ident.Plot_Density_Custom and
Plot_Density_Joint_Only due to error in Nebulosa following
ggplot2 v3.5.0 update. Functionality will be restored when Nebulosa
package is updated.as.liger that prevented function
from running properly.title_prefix parameter to
Iterate_DimPlot_bySample to unify with
Meta_Highlight_Plot.Split_Vector to split vector in chunks
of predetermined sizes.Updated_HGNC_Symbols to update human
gene symbols. After first use does not require internet
connection.Seurat::LogSeuratCommand().plot_legend to
plotFactors_scCustom to allow for removal to legend in
factor loading plots.Iterate_FeaturePlot_scCustom
to allow for plotting multiple plots per page when saving to single PDF
document (see new parameters: features_per_page and
landscape.LIGER_Features utility function for LIGER objects
(analogous to Seurat::Features()).as.LIGER() as enhanced method for
conversion of Seurat objects or lists of Seurat objects to single LIGER
object.as.anndata() to support conversion of
Seurat and LIGER objects to anndata format.Convert_Assay() to perform easy
conversions of Seurat assays between V3/4 (Assay) and V5 (Assay5)
formats.assay_type to allow manual control of
assay type when creating Seurat object from LIGER using
Liger_to_Seurat. Now as.Seurat.grid_color to
Clustered_DotPlot to control the color of grid lines
(default is no grid lines).Clustered_DotPlot
by additional variable and maintain expression information.Split_Layers() function for V5 objects.Add_Alt_Feature_ID to add alternative feature ids
to an Assay5 meta.data slot.Add_Mito_Ribo() replaces
Add_Mito_Ribo_Seurat and
Add_Mito_Ribo_LIGER.Add_Cell_Complexity() replaces
Add_Cell_Complexity_Seurat and
Add_Cell_Complexity_LIGER.Meta_Present_LIGER
has been deprecated and wrapped inside of
Meta_Present.Liger_to_Seurat() has been soft-deprecated. It is replaced
by new extension of Seurat generic as.Seurat with added
support for Liger objects, using all the same parameters as
Liger_to_Seurat. Full deprecation will occur in
v2.2.0.Gene_Present has been soft-deprecated. It is replaced by
Feature_Present which functions identically but better
reflects that features present may also be proteins. Full deprecation
will occur in v2.2.0.legend in
Iterate_DimPlot_bySample has been inverted to
no_legend to match Meta_Highlight_Plot
parameters.Liger_to_Seurat() for compatibility with Seurat
V5 structure (#153).
Now part of as.Seurat.Stacked_VlnPlot due
to rasterization defaults.alpha_na_exp appropriately in
FeaturePlot_scCustom.alpha_exp between Seurat versions 4
and 5 (#144).DimPlot_scCustom when levels
are missing from a split plot.FeaturePlot_scCustom that could cause
plots to be mislabeled when using split.by and depending on
the order of features provided (#150).DimPlot_LIGER (#153).Add_Mito_Ribo_LIGER that caused it to
return value of 0 for all cells (Now part of renamed
Add_Mito_Ribo S3 generic).Clustered_DotPlot to display
percentage instead of proportion to match legend text.Percent_Expressing error when
group_by = "ident".DotPlot_scCustom that didn’t correctly
pass group.by when plotting (#158).VariableFeaturePlot_scCustom now
fixed in Seurat release.Add_Mito_Ribo_Seurat causing failure due
to error message when overwrite = TRUE.Add_Top_Gene_Pct_Seurat to avoid issue
that accidentally could call function on normalized data.Add_Top_Gene_Pct_Seurat that caused
error if more than one counts layer was present.QC_Histogram that prevented plotting or
titling of plots.multi
pipeline to Read10X_Metrics via new parameter
cellranger_multi.dot_size parameter to Seq_QC_Plot_*
family of functions.Barcode_Plot and
Iterate_Barcode_Rank_Plot.ident_legend parameter to
QC_Plot_UMIvsGene to control show/hide of the identity
legend (#121).CellBender_Feature_Diff.min_count_label in
CellBender_Diff_Plot to better control feature
labeling.Iterate_DimPlot_bySample using new
sample_column parameter.MAD_Stats to calculate to the median
absolute deviation of meta.data columns by grouping variable and across
entire object.Add_Top_Gene_Pct_Seurat to add
another QC measure of cell complexity to object meta.data. Returns
percentage of counts occupied by top XX genes in each cell.VariableFeaturePlot_scCustom using
custom_features parameter.Add_Cell_QC_Metrics to simplify adding cell QC metrics.
Single function call to add Mito/Ribo Percentages, Cell Complexity, Top
Gene Percentages, MSigDB Percentages, IEG Percentages, and/or Cell Cycle
Scoring (human only).Add_Cell_QC_Metrics function: “msigdb_qc_gene_list” and
“ieg_gene_list”.Add_Cell_QC_Metrics.plot_median and
plot_boxplot to VlnPlot_scCustom (and
VlnPlot_scCustom-based plots; e.g., QC_Plot_*
family) for added visualization.QC_Histogram to plot QC features (or any feature)
using simple histogram.FeatureScatter_scCustom function to customize
Seurat’s FeatureScatter plots.figure_plot parameter to all 2D DR (t-SNE, UMAP,
etc) based plots (#127).Split_FeatureScatter
function has been completely deprecated and it’s functionality has been
moved to new FeatureScatter_scCustom.gene_list in Iterate_FeaturePlot_scCustom and
Iterate_VlnPlot_scCustom has been soft-deprecated and
replaced by features parameter. Specifying
gene_list will display deprecation warning but continue to
function until next major update.Read10X_Metrics to use new internal
helper functions.Liger_to_Seurat to transfer the liger_object@H
slot in addition to H.norm slot already moved.length(x = colnames(x = obj) with
length(x = Cells(x = obj) for accurate plotting based on V5
object structure.Gene_Present now accepts assay
parameter.R/ for
better organization.scCustomize_Palette). Now if number of colors is greater
than 2 but less than 8 the default palette will be
ColorBlind_Pal (previously it was “polychrome”). Polychrome
remains the default when number of colors is between 9-36.scCustomize_Palette to
ggplot_default_colors = FALSE to avoid uncessary error when
no value supplied.DimPlot_scCustom will now set label = TRUE
if label.box is set to TRUE but label is not
changed from default.PackageCheck (now deprecated), with
rlang::is_installed() for non-dependency checks.Read10X_Metrics that caused errors when
reading files on windows operating system (#115).Create_CellBender_Merged_Seurat when
feature names are changed (underscore to dash) during object creation
(#118).Read10X_h5_Mutli_Directory when reading
Cell Ranger multi directories.VlnPlot_scCustom,
DimPlot_scCustom, and DotPlot_scCustom to
avoid otherwise ambiguous error messages (#120).VlnPlot_scCustom (#122).Cell_Highlight_Plot that could
cause function to error without proper error message.Read_* functions to
avoid unnecessary errors.drop_na(.data[[var]], with current dplyr syntax.VlnPlot-based plots when
split.by is not NULL.group.by when using DimPlot_scCustom (#128).Add_Mito_Ribo_Seurat and Add_Mito_Ribo_LIGER
which incorrectly stated the names of new meta.data/cell.data columns to
be added.DotPlot_scCustom that prevented it from
working unless group.by parameter was explicitly
added.Case_Check caused by typo.Cluster_Highlight_Plot
and Meta_Highlight_Plot that were too verbose.Add_Mito_Ribo_Seurat and
Add_Mito_Ribo_LIGER which caused error when supplying
custom list of features for non-default organism (#133).DimPlot_scCustom preventing that errored
when trying to split plot and use figure_plot at same
time.Merge_Seurat_List.aspect_ratio parameter to all dimensionality
reduction plots to control axes ratio of output plot.plot_median and median_size
parameters to QC_Plots_* functions.split_collect parameter to
FeaturePlot_scCustom to collect all guides when using
split.by for a single feature (#94).Clustered_DotPlot to allow
modification of sizes of column text labels, legend text labels, and
legend title labels (#96).Merge_Sparse_Multimodal_All for
merging multi-modal data (1 matrix per modality) (#104).Clustered_DotPlot named
row_label_fontface to allow control of fontface used for
row labels (#103).Reduction_Loading_Present, in part
to fix issue with FeaturePlot_scCustom and internal feature
checking.Clustered_DotPlot using new parameters:
cluster_feature, cluster_ident (#106).dot_size parameter to statistics plotting
functions Plot_Cells_per_Sample and
Plot_Median_* family.no_legend to
Iterate_Meta_Highlight_Plot to allow for plotting with a
plot title instead of plot legend (#108).QC_Plots_Feature to use
VlnPlot_scCustom under the hood like rest of
QC_Plots_* functions.abort in Meta_Present to
return_none to align with Gene_Present and
Reduction_Loading_Present.summarise_at, select(.data[[var]]), and
rename(.data[[var]]) with current dplyr syntax.Iterate_Cluster_Highlight_Plot and
Iterate_Meta_Highlight_Plot to align with recent updates to
base Cluster_Highlight_Plot and
Meta_Highlight_Plot functions.QC_Plots_Feature to respect parameters when
passing to VlnPlot (#91).Read_CellBender_h5_* functions to support
CellBender outputs from STARsolo- or Cell Ranger (pre-V3)-processed data
(#99).FeaturePlot_scCustom to allow for plotting of
dimensionality reduction loadings (#97).Read10X_Multi_Directory and
Read10X_h5_Multi_Directory to support files processed with
Cell Ranger multi pipeline.Merge_Seurat_List that prevented
add.cell.id from adding correct cell name prefixes (#113).label_color_num parameter to
PalettePlot allow control of color labeling.Stacked_VlnPlot 90
degrees or 45 (previously possible) (#84).Merge_Seurat_List to avoid
ambiguous error messages on failure.Case_Check checks/messages to all feature-based
plotting functions.PalettePlot has been changed from palette to
pal.PalettePlot to support pal of
class “colors”.Cluster_Highlight_Plot and
Meta_Highlight_Plot.Fetch_Meta is now S3 generic function that can handle
either Seurat or LIGER objects.R/ scripts for better
organization.Add_Mito_Ribo_Seurat and
Add_Mito_Ribo_LIGER.Add_Mito_Ribo_Seurat to respect provided
mito_name, ribo_name and
mito_ribo_name values.merge parameter to Read10X_GEO,
Read10X_h5_GEO, Read_GEO_Delim and
Read_CellBender_h5_Multi_File.raster.dpi parameter to
DimPlot_LIGER.label parameter to
FeaturePlot_scCustom to avoid error collision (#80).vln_linewidth parameter to control violin outline
line width (#32).Fetch_Meta for
returning data.frame of object meta data.Extract_Sample_Meta to extract sample-level meta
data from object.Cell_Highlight_Plot for highlight plots of custom
cells not in active ident or meta data.flip parameter to Clustered_DotPlot
to enable axes flipping (#69).R/ scripts for better
organization.FindMarkers.CellBender_Feature_Diff to return data.frame with
count sums and differences between raw and CellBender assays.CellBender_Diff_Plot to plot differences between
raw and CellBender assays using data from
CellBender_Feature_Diff.Add_CellBender_Diff is new name for
Add_Cell_Bender_Diff in order to unify function names for
CellBender related functions.mito_name parameter to QC_Plots_Mito
to allow for custom specification of meta data column name that contains
mitochondrial information.QC_Plots_Combined_Vln() function to return
patchwork layout of 3 QC plots.Add_Mito_Ribo_Seurat() and
Add_Mito_Ribo_LIGER() (#28).alpha_exp and alpha_na_exp
parameters to FeaturePlot_scCustom to allow for control of
color scale transparency (#21).*_Highlight_Plot functions can now plot multiple
variables simultaneously using either one color for all variables or one
color per variable (#34).figure_plot to
DimPlot_scCustom(). This removes axes and axes labels and
adds axis legend on left bottom corner of plot (#40).plot_legend to
Stacked_VlnPlot. This solves issue with returning only one
shared legend across all features being plotted (#48).Add_Cell_Complexity_Seurat and
Add_Cell_Complexity_LIGER functions to add cell QC
complexity/novelty metric (log10(Genes) / log10(UMIs)).QC_Plots_Complexity plot for quick plotting of
cell complexity score.Read_CellBender_h5_Mat,
Read_CellBender_h5_Multi_Directory,
Read_CellBender_h5_Multi_File to enable easy reading of new
CellBender output files.raster.dpi parameter from Seurat to all
DimPlot FeaturePlot or
FeatureScatter based functions.add.noise parameter from Seurat to
VlnPlot_scCustom Stacked_VlnPlot
functions.group.by as default listed parameter to added to
allVlnPlot based QC_Plot_*.ensembl_ids parameter for
Add_Mito_Ribo_* functions. If
ensembl_ids = TRUE functions will retrieve stored ensembl
IDs representing mitochondrial and ribosomal genes for accepted default
species.label_feature_yaxis to
FeaturePlot_scCustom. Allows for plotting of feature names
on secondary y-axis when using split.by (#60).Add_Sample_Meta function for addition of
sample-level meta data to cell-level @meta.data slot of
Seurat objects.Read_GEO_Delim to check for
issues with imported matrices. Check is modified version of
SeuratObject::CheckMatrix called
CheckMatrix_scCustom(). Will warn if infinite, logical,
non-integer (whole), or NA/NaN values are detected in input
matrix.QC_Plot_UMIvsGene will now returned filtered
correlation value that takes into account
meta_gradient_name if provided in addition to nFeature_RNA
and nCount_RNA.Variable_Features_ALL_LIGER which
allows for detection/selection of variable genes from entire LIGER
object instead of iterating by dataset.PackageCheck warning has been added where needed.VlnPlot has been changed to
Iterate_VlnPlot_scCustom to reflect that it now uses
VlnPlot_scCustom to generate plots.QC_Plot_* functions now use
VlnPlot_scCustom internally to unify color scheme and
rasterization parameters.*_Highlight_Plot functions no longer display
“Unselected” in plot legend and uses DimPlot_scCustom to
generate plots (#34).low_cutoff from plotting via
QC_Plots_Mito.Clustered_DotPlot that prevented setting
identity colors (#29).FeaturePlot_scCustom that returned NULL
when setting combine = FALSE (#31).Seq_QC_Plot_* functions which resulted in
groups being plotted out of order when specifying plot_by
parameter.Seq_QC_Plot_* functions that created color
palette error when color palettes were not being used.DimPlot_scCustom that caused mismatch of
colors between plots when using split.by if one of the
plots was missing 1 or more of the group.by levels (#37).VlnPlot_scCustom that caused raster
warning messages to be displayed twice (#42).Iterate_PC_Loading_Plots that caused error
when specifying current directory with file_path = NULL or
file_path = ""DotPlot_scCustom that prevented plotting
of features in meta.data slot (#44).Stacked_VlnPlot when
no supplied features were present.plotFactors_scCustom that was ignoring
provided file name.plotFactors_scCustom that caused progress
to only display progress up to 50% even when it was fully complete.Clustered_DotPlot that resulted in error
related to color palettes if number of clusters was greater than 36 (#49).Add_Mito_Ribo_LIGER that resulted custom
column names (e.g. mito_name = "pct.mt") being disregarded
and also therefore issue with overwrite parameter. (#51).Store_Misc_Info_Seurat that prevented
function from working.Plot_Density_Custom when supplying
custom_palette and multiple features. (#51).Clustered_DotPlot so that legend with
identities is displayed by factor level of Seurat object idents (#55).Split_FeatureScatter to remove test code
that prevented function from working properly (#57).DimPlot_All_Samples,
Split_FeatureScatter, and DimPlot_scCustom
that ignored factor order when plotting groups.FeaturePlot_scCustom
when setting split.by and one or more of features provided
was not present in object (#64).VlnPlot_scCustom function.Stacked_VlnPlotmake_unique parameter to
Extract_Top_Markers function.Clustered_DotPlot function.Add_Mito_Ribo_Seurat and
Add_Mito_Ribo_LIGER.VlnPlot.Read_Metrics_10X errors that occurred due to
differing outputs depending on Cell Ranger version or type of
assay.importFrom for
DefaultDimReduc from SeuratObject package to avoid
potential errors.Read_Metrics_10X errors that occurred due to
differing outputs depending on Cell Ranger version or type of
assay.importFrom for
DefaultDimReduc from SeuratObject to avoid potential
errors.Merge_Sparse_Data_All. (#8)Read_Metrics_10X,
Read10X_Multi_Directory, and
Read10X_h5_Multi_Directory.StackedVlnPlot with
parameters plot_spacing and spacing_unit. (#6)scCustomize_Palette function select palette to
use (simplify internal code).Iterate_VlnPlot.Iterate_... function checks for file path parameter
if file_path = NULL.