NEWS.md
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.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).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.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.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).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
.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_VlnPlot
make_unique
parameter to Extract_Top_Markers
function.Clustered_DotPlot
function.Add_Mito_Ribo_Seurat
and Add_Mito_Ribo_LIGER
.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).