scCustomize 3.3.0 (2026-XX-XX)
April 2, 2026 ยท View on GitHub
Added
- Added
reorder,reorder_decreasing, andplot_medianparameters toPlot_Cells_per_Samplewhen grouping by sample. - Added
Read_Velocityfunction to enable reading of velocyto loom output files without needing to install velocyto.R (which currently suffers from significant installation issues unrelated to reading loom files).
Changed
- BREAKING CHANGE The
plot_byparameter has been soft-deprecated inSeq_QC_Plot_*family of functions. Please usegroup.byinstead. Usingplot_bywill warn user but still work until scCustomize v3.5.0. - BREAKING CHANGE The parameter
cutoff_line_widthhas been soft-deprecated inQC_Plot_*family of functions. Please usecutoff_linewidthinstead. Usingcutoff_line_widthwill warn user but still work until scCustomize v3.5.0. - BREAKING CHANGE The parameter
linewidthhas been soft-deprecated inElbowPlot_scCustomfunction. Please usecutoff_linewidthinstead. Usinglinewidthwill warn user but still work until scCustomize v3.5.0. - Add some checks for appropriate
...usage.
Fixes
- Fixed default setting of
linewidthparameter ingeom_hlineandgeom_vlinecalls to avoid unnecessary empty aesthetic warnings in ggplot2 4.0.0+. - Fixed warning in
Dataset_Size_LIGERdue to deprecation inExtract_Sample_Meta. - Fixed issue with group colors in in
DimPlot_scCustomwhen split only contains one group Thanks @zrlewis, (#262).
scCustomize 3.2.4 (2025-12-10)
Added
- Add progress bar support to following functions with
parallelparameter using mcprogress package:Read10X_GEO,Read10X_h5_GEO,Read10X_Multi_Directory,Read10X_h5_Multi_Directory,Read_GEO_Delim,Read_CellBender_h5_Multi_Directory,Read_CellBender_h5_Multi_File. - Added additional error checks to read functions for informative error messaging.
Changed
Random_Cells_Downsamplenow returns named list of downsampled cells per identity.- Fix internal checks of data format for
Update_HGNC_SymbolsandUpdate_MGI_Symbols. - Full deprecation of
min_cellsandmin_featuresparameters inCreate_CellBender_Merged_Seurat, usemin.cellsandmin.featuresinstead. - Full deprecation of
meta_col_nameinRename_Clusters. - Full deprecation of
group_byparameter inPlot_Median_Genes,Plot_Median_UMIs,Plot_Median_Mito,Plot_Median_Other,Plot_Cells_per_Sample,Percent_Expressing,DimPlot_LIGER, andExtract_Top_Markers. Please usegroup.byinstead. - Full deprecation of
group_by_varparameter inProportion_Plot,Cluster_Stats_All_Samples,Median_Stats, andMAD_Stats. Please usegroup.byinstead. - Full deprecation of
split_byparameter inPercent_Expressing,DimPlot_LIGER, and internal functions. Please usesplit.byinstead. - Default file name for
Iterate_PC_Loading_Plotsnow contains ".pdf" file extension. - Reorganization of R/ scripts.
Fixes
- Fixed bug in
DimPlot_scCutomwhensplit_downsample = TRUEthat caused plot titles to use the wrong identity names.
scCustomize 3.2.2 (2025-11-12)
Added
Changed
- Changed behavior of file extension checking in
Add_MALAT1_Threshold.
Fixes
- Fixed problem with
Add_Cell_QC_Metricsthat was not correctly accounting for all lncRNA genes when calculating percentage of lncRNA counts.
scCustomize 3.2.1 (2025-11-07)
Added
- Added new function
ElbowPlot_scCustomwhich expandsElbowPlotto include calculations of amount of variance conferred by PCs. See manual for more details. - Added new function
Map_New_Metato enable mapping of existing meta.data column to new variable. - Added
split_downsampleparameter toDimPlot_scCustomto downsample each group when splitting plots to the number of cells in the smallest group. - Added
show_annotation_nameparameter toClustered_DotPlotto control whether annotation name is shown next to color bar on plot. Thanks @Biase-lab, (#243). - Added
no_file_prefixtoRead_CellBender_h5_Multi_Directoryto allow for situations where file does not share folder name as prefix, default is FALSE. Thanks @pedro-fr, (#242). - Added
columnnsparameter toFetch_Metato allow for return of select meta data columns instead of all columns (default remains returning all columns). - Added support for VDJ B metrics in
Read_Metrics_10X. - Added support for Antibody Capture metrics in
Read_Metrics_10X.
Changed
- BREAKING CHANGE The
sample_nameparameter has been soft-deprecated inExtract_Sample_Meta. Please usesample_colinstead. Usingsample_namewill warn user but still work until scCustomize v3.3.0. - Updated messages in
Random_Cells_Downsample. - Full deprecation of
Add_Top_Gene_Pct_Seurat, see currentAdd_Top_Gene_Pctfunction. - Full deprecation of
Liger_to_Seuratseeas.Seuratfor LIGER v1.0 objects orrliger::ligerToSeuratfor LIGER v2.0+ objects. - Updated
Iterate_Cluster_Highlight_Plotto use consistentpt.sizeacross all plots ifpt.size = NULLin function call.
Fixes
- Fixed calculation of number of cells x number of features in
VlnPlot_scCustomto properly rasterize plot if total is greater than 200,000. Thanks @DavideBrex, (#244). - Fixed issue with
Read_Metrics_10Xfor outputs whencellranger_multi = TRUEand Cell Ranger v9+ was used to process data. Thanks @lisch7, (#245). - Fixed bug in
Proportion_Plot_per_Sampledue to missing parameter internally when pulling meta data and orig.ident did not represent sample IDs. - Fixed bug in
Top_Genes_Factorfor LIGER objects when settingfactor = "all". Thanks @theAeon, (#247). - Fixed bug in
Update_HGNC_Symbolsdue to error reading HGNC file. Thanks @MD-Paris, (#248). - Fixed bug in
Variable_Features_ALL_LIGERthat didn't passnum_genesparameter correctly to LIGER v2+ objects.
scCustomize 3.2.0 (2025-09-09)
Added
- Added cNMF vignette.
- Added
reduction_nameandreduction_keyparameters toRead_Add_cNMFto allow for control over reduction name (and ability to add results from more than one run of cNMF to the same Seurat object). - Added
ReFilter_SeuratObjectfunction to enable easy re-filtering of object usingmin.cellsand/ormin.featuresparameters.
Changed
- Internal function
yesnowill now provide Yes/No options in same order every time to avoid mistaken input.
Fixes
- Fixed errors in plotting with
Factor_Cor_Plotthat occurred due to partial matrix plotting and row clustering. - Fixed column naming in
Top_Genes_Factorfor Seurat objects to align with format returned for LIGER objects. - Fixed issue with
SpatialDimPlot_scCustomthat prevented proper plotting whengroup.bywas manually supplied. Thanks @mustafapir, (#240).
scCustomize 3.1.3 (2025-08-25)
Added
- Add support for LIGER objects using
Extract_Sample_Meta. - Added new function
Dataset_Size_LIGERto return data.frame containing cells per dataset in liger object in addition to accompanying sample meta data if desired. - Added new function
Get_Reference_LIGERto return name of dataset matching selection criteria to use as reference forrliger::quantileNorm(). - Added new function
Add_MALAT1_Thresholdwhich implements QC procedure from Clarke & Bader (2024). bioRxiv \doi{doi.org/10.1101/2024.07.14.603469}. - Added new internal function
Check_Normalizedto confirm data within "data" layer of Seurat object is actually normalized (relevant only for V3/4 style objects/assays). - Added new parameters to
Add_Cell_QC_Metrics(Seurat ONLY) to add module score of IEGs in addition to percent expressing. - Added new function
exAM_Scoringto add module scores for exAM gene sets from Marsh et al., 2022 (\doi{10.1038/s41593-022-01022-8}). - Added new function
Proportion_Plot_per_Sampleto plot proportion of cells per sample across a specified condition. - Added new parameter
order_by_freqtoCluster_Stats_All_Samples. It isTRUEby default and returned data.frame is ordered by cluster frequency, setting FALSE orders data.frame by cluster order. - Updated
Convert_Assayto allow V5 > V3 conversions even when normalized and scale data is absent (#236). - Added
Read_Add_cNMFto read and add results from cNMF as custom dimensionality reduction. Top_Genes_Factoris now S3 generic and works with either Seurat or LIGER objects.Top_Genes_Factornow supportsfactor = "all"which will return data.frame containing top X genes for all factors, 1 column per factor.- Added parameter
label_selected_featurestoClustered_DotPlotto allow for labeling only subset of plotted features. - Added new parameter to
Add_Cell_QC_Metricsto add percentage of lncRNA counts per cell (seeadd_lncRNAparameter).
Changed
This release contains a number of BREAKING changes to parameter names:
- BREAKING CHANGE The parameter
num_geneshas been soft-deprecated inExtract_Top_Markers. Please usenum_featuresinstead. Usingnum_geneswill warn user but still work until scCustomize v3.3.0. - BREAKING CHANGE The parameter
min_cellsandmin_featureshave been soft-deprecated inCreate_CellBender_Merged_Seurat. Please usemin.cellsandmin.featuresinstead. Usingmin_cellsandmin_featureswill warn user but still work until scCustomize v3.3.0.
This release contains a number of BREAKING changes to parameter names to harmonize across scCustomize and Seurat:
Due to large number of functions affected the timeline for full deprecation of these parameters has been extended. Old parameter names will issue warning but continue to work until v3.3.0.
- BREAKING CHANGE The
group_byparameter has been soft-deprecated inPlot_Median_Genes,Plot_Median_UMIs,Plot_Median_Mito,Plot_Median_Other,Plot_Cells_per_Sample,Percent_Expressing,DimPlot_LIGER, andExtract_Top_Markers. Please usegroup.byinstead. Usinggroup_bywill warn user but still work until scCustomize v3.3.0. - BREAKING CHANGE The
group_by_varparameter has been soft-deprecated inProportion_Plot,Cluster_Stats_All_Samples,Median_Stats, andMAD_Stats. Please usegroup.byinstead. Usinggroup_by_varwill warn user but still work until scCustomize v3.3.0. - BREAKING CHANGE The
split_byparameter has been soft-deprecated inPercent_Expressing,DimPlot_LIGER, and internal functions. Please usesplit.byinstead. Usingsplit_bywill warn user but still work until scCustomize v3.3.0.
Non-breaking changes in this release:
- The following parameters in
plotFactors_scCustomhave been fully deprecated for LIGER objects >= V2:reorder_datasetsandreduction_label. - Following prior deprecation warnings the following functions are now fully deprecated and replaced with updated functions:
Add_Cell_Complexity_LIGER,Add_Cell_Complexity_Seurat,Add_Cell_Complexity_Seurat,Add_Mito_Ribo_LIGER,Add_Mito_Ribo_Seurat,Gene_Present,Meta_Present_LIGER, andSplit_FeatureScatter. - Changed internal function
PercentAbove_Seuratto match updates to Seurat to appropriately deal with NA values. - Changed functionality of several
QC_Plot*functions to dynamically set nFeature or nCount variable name based on assay specified. - Changed default parameter value for
x_lab_rotateinProportion_Plotfrom FALSE to TRUE. - Changed param
selection.methodtomethodinVariableFeaturePlot_scCustomto account for deprecation in Seurat/SeuratObject.
Fixes
- Fixed use of chicken as default species in some QC functions.
- Fixed bug in
Read_Metrics_10Xthat caused function failure. - Fixed bug in
Subset_LIGERto ignore cluster column when subsetting based on other meta data variable. - Fixed bug in
QC_Histogramthat didn't allow it to properly plot feature data. - Fixed bug in
FeaturePlot_scCustomthat preventedmax.cutoff/min.cutofffrom being correctly passed when splitting plots (#228). - Fixed check for file extension in
Iterate_PC_Loading_Plots. New internal functioncheck_extensionto ease these checks package-wide. - Fixed bug in behavior of
Extract_Top_Markerswhen sorting the markers by "p_val_adj" that was selecting genes with highest p values instaed of lowest (#229). - Fixed rotation of x-axis text in
Proportion_Plot. - Added check for correct input format in
Extract_Top_Markers. - Added check to
Plot_Median_Genes,Plot_Median_UMIs,Plot_Median_Mito, andPlot_Median_Otherto ensure thatgroup.byandsample_colare different and provide informative error message if they are the same (#233). - Fixed bug in
VariableFeaturePlot_scCustomthat prevented function from running. - Fixed
Factor_Cor_Plotfailure when using Seurat object due to lack ofreductionparameter. - Fixed issue in
Clustered_DotPlotwhen feature has zero expression in any cells with newnan_errorparameter (#178). - Fixed error in
Barcode_Plotthat prevented plotting when using newer versions of DropletUtils. - Code styling and typo fixes.
scCustomize 3.0.1 (2024-12-18)
Added
- Added new parameters
output_widthandoutput_heightto theIterate_*family of plotting functions (#217).
Changed
Fixes
- Fixed bug in
Random_Cells_Downsamplethat prevented setting identity using thegroup.byparameter. - Fixed bug in
Cell_Highlight_Plotthat didn't pass the reduction parameter properly (#216). - Fixed bug when retrieving ensembl IDs for IEGs.
- Fixed bug that prevented using
return_plotsin iterative plotting functions(#217).
scCustomize 3.0.0 (2024-12-05)
Added
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_Hemoto add hemoglobin gene percentage for QC. Also added as parameter toAdd_Cell_QC_Metrics.Add_Hemosupports 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_CellBenderto 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_Symbolsto check for update gene names/symbols in mouse data (#202). - Added plotting function
Proportion_Plotto plot pie chart or bar chart of proportion (or total counts) of cells in each identity class. - Added new function
Random_Cells_Downsampleto return either a vector or list with randomly downsampled cells for each identity class. - Added new function
Cells_per_Sampleto quickly return data.frame with just number of cells per sample.
Updated functions:
- Added new parameters
data_nameandoverwritetoAdd_Alt_Feature_IDto support new storage location. - Added
cellsparameter explicitly toFeatureScatter_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_10Xto read a single metrics csv file and return data formatted the same way as when reading multiple files. - Added parameter
cutoff_line_widthto theQC_Plot_*family of plots to control line thickness of cutoff lines. Cluster_Stats_All_Samplesnow returns data.frame with row order reflecting the frequency of cells.Add_Mito_Ribonow supports datasets aligned to multi-species reference genomes (#184).- Added parameter
add_prop_plottoDimPlot_scCustomto return plot showing number or percent of cells per identity along with the DimPlot. - Added optional parameter
colors_use_assay2toFeaturePlot_DualAssaywhich 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_SeuratandStore_Palette_Seurat. - Explicitly reveal the
reductionparameter inCluster_Highlight_PlotandMeta_Highlight_Plot(#198). - Added
show_row_namesshow_column_names,column_names_side,row_names_side,legend_position,legend_orientation,show_ident_legend, andshow_ident_colorsparameters toClustered_DotPlot. Thanks for idea and code @johnminglu (#199). - Updated
Split_Vectorto allow user to specify number of chunks or size of chunks for splitting vector. - Update
RenameClusterswith additional parameters to enable storage of both old idents and new idents in meta.data within the function. - Update
Add_Cell_QC_Metrics.Seuratto explicitly reveallist_species_namesparameter. - 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.
Changed
- BREAKING CHANGES
Add_Top_Gene_Pct_Seuratis now S3 generic that works with both Seurat and liger objects and has been renamedAdd_Top_Gene_Pct. Add_Cell_QC_Metricsis now S3 generic and works with both Seurat and liger objects.- Changed storage location for
Add_Alt_Feature_IDto@miscslot of object for safer storage across object filtering. - Added error check in
as.anndatato explicitly check for installation of anndata before starting conversion (#162). - Updated
Plot_Median_Genes,Plot_Median_UMIs,Plot_Median_Mito,Plot_Median_Other,Plot_Cells_per_Sampleto understand "ident" as grouping variable. - Updated
Store_Misc_Info_Seuratto use Seurat accessor/setter functionSeurat::Misc(). - Updated documentation for
sample_namesinRead_CellBender_h5_Multi_Fileto clarify parameter behavior (related to (#208)). - Updated
Read_Metrics_10Xto support adjusts to metrics summary format and metric names in output from Cell Ranger v9+. - Some reorganization of R/ directory/scripts.
Fixes
- Nebulosa plotting functions
Plot_Density_CustomandPlot_Density_Joint_Onlyhave been re-enabled for users with ggplot2 v3.5.0 following Nebulosa v1.12.1 update patch. - Fixed bug causing error in
Add_Cell_QC_Metricswhenoverwrite = TRUE(#165). - Fixed wrong description of parameter in manual entry for
DotPlot_scCustom(#158). - Fixed several potential errors in
as.anndatafrom Seurat conversion that previously caused failures (#168). - Fixed errors in
Create_Cluster_Annotation_Fileif for file path and csv name errors. - Fixed error when using
plot_medianand more than one feature inVlnPlot_scCustom(#169). - Fixed bug while collecting legends for
DimPlot_scCustomdue to changes in guides updated with ggplot2 v3.5.0 (#171). - Fixed error in
Add_Sample_Metathat still errored when settingna_ok = TRUE. - Fixed errors in
Plot_Median_*family that caused issues whengroup_byparameter was NULL. - Fixed errors in
FeaturePlot_scCustomwhen settingcombine = FALSE. - Fixed bug in
DimPlot_scCustomthat could cause blank plot when rasterizing points. - Fixed bug in
MAD_Statsthat didn't respectmad_numparameter (#183). - Fixed bugs in
MAD_Statsthat could cause issues ifmad_numwas less than or equal to 0 and returned error if settinggroup_by_varto "ident". - Replaced lingering instances of deprecated tidyr code .data[["var"]] with update
all_of/any_ofsyntax. - Fixed issue that could occur with some meta data modifying functions due to column name collisions in internals of function (#193).
- Fixed issue that caused error when using
Cluster_Highlight_Plotwithsplit.byparameter (#201). - Added check and informative error message to
Convert_Assay(#205). - Fixed issue with anndata conversion and Seurat V5 objects (#195).
- Fixed issue with
Updated_HGNC_Symbolsdue to change in URL path for gene names (#209). - Fixed bug in
DimPlot_scCustomwhensplit.byandlabel.box = TRUE. - Fixed bug in
DiscretePalette_scCustomthat didn't error when supplying invalid palette names. - Fixed bug in
DimPlot_LIGERthat provided uniformative error message when changing the default cluster ident. - Spelling and style fixes. Thanks @kew24.
scCustomize 2.1.2 (2024-02-27)
Added
- None.
Changed
- None.
Fixes
- Fixed breaking bug (and CRAN check errors) in
Plot_Density_CustomandPlot_Density_Joint_Onlydue to error in Nebulosa following ggplot2 v3.5.0 update. Functionality will be restored when Nebulosa package is updated.
scCustomize 2.1.1 (2024-02-23)
Added
- None.
Changed
- None.
Fixes
- Fixed breaking bug in
as.ligerthat prevented function from running properly.
scCustomize 2.1.0 (2024-02-21)
Added
- Added
title_prefixparameter toIterate_DimPlot_bySampleto unify withMeta_Highlight_Plot. - Added function
Split_Vectorto split vector in chunks of predetermined sizes. - Added new function
Updated_HGNC_Symbolsto update human gene symbols. After first use does not require internet connection. - Added command logging to QC metric-related commands using
Seurat::LogSeuratCommand(). - Added parameter
plot_legendtoplotFactors_scCustomto allow for removal to legend in factor loading plots. - Added new functionality to
Iterate_FeaturePlot_scCustomto allow for plotting multiple plots per page when saving to single PDF document (see new parameters:features_per_pageandlandscape. - Added
LIGER_Featuresutility function for LIGER objects (analogous toSeurat::Features()). - Added new generic
as.LIGER()as enhanced method for conversion of Seurat objects or lists of Seurat objects to single LIGER object. - Added new generic
as.anndata()to support conversion of Seurat and LIGER objects to anndata format. - Added function
Convert_Assay()to perform easy conversions of Seurat assays between V3/4 (Assay) and V5 (Assay5) formats. - Added parameter
assay_typeto allow manual control of assay type when creating Seurat object from LIGER usingLiger_to_Seurat. Nowas.Seurat. - Added param
grid_colortoClustered_DotPlotto control the color of grid lines (default is no grid lines). - Added ability to split identities in
Clustered_DotPlotby additional variable and maintain expression information. - Added
Split_Layers()function for V5 objects. - Added
Add_Alt_Feature_IDto add alternative feature ids to an Assay5 meta.data slot.
Changed
- BREAKING CHANGES Several methods have been moved to S3 generics to function for both Seurat and LIGER objects using single function name and therefore some function names have changed. Old functions will give deprecation warning and direct users to new functions.
Add_Mito_Ribo()replacesAdd_Mito_Ribo_SeuratandAdd_Mito_Ribo_LIGER.Add_Cell_Complexity()replacesAdd_Cell_Complexity_SeuratandAdd_Cell_Complexity_LIGER.
- BREAKING CHANGES
Meta_Present_LIGERhas been deprecated and wrapped inside ofMeta_Present. - SOFT-DEPRECATION The function
Liger_to_Seurat()has been soft-deprecated. It is replaced by new extension of Seurat genericas.Seuratwith added support for Liger objects, using all the same parameters asLiger_to_Seurat. Full deprecation will occur in v2.2.0. - SOFT-DEPRECATION The function
Gene_Presenthas been soft-deprecated. It is replaced byFeature_Presentwhich functions identically but better reflects that features present may also be proteins. Full deprecation will occur in v2.2.0. - Parameter
legendinIterate_DimPlot_bySamplehas been inverted tono_legendto matchMeta_Highlight_Plotparameters. - Updated
Liger_to_Seurat()for compatibility with Seurat V5 structure (#153). Now part ofas.Seurat. - Default color palette change from v2.0.0 when number of groups is between 3-8 has been reverted. Polychrome palette is default when number of groups is between 3-36.
- In preparation of upcoming overhaul of rliger package, added package version checks to current rliger functions in order to prevent breaking errors. Next update v2.2.0 will add cross-functionality between rliger package versions (#161).
Fixes
- General typo and style fixes.
- Fixed point size check in some QC functions to avoid unnecessary error message.
- Fixed redundant warning messages in
Stacked_VlnPlotdue to rasterization defaults. - Fixed issue setting
alpha_na_expappropriately inFeaturePlot_scCustom. - Fixed issue setting
alpha_expbetween Seurat versions 4 and 5 (#144). - Fix duplicate legends in
DimPlot_scCustomwhen levels are missing from a split plot. - Fixed bug in
FeaturePlot_scCustomthat could cause plots to be mislabeled when usingsplit.byand depending on the order of features provided (#150). - Fixes issue with automatic point size calculation for Seurat Objects.
- Added check for presence of dimensionality reduction in
DimPlot_LIGER(#153). - Fixed bug in
Add_Mito_Ribo_LIGERthat caused it to return value of 0 for all cells (Now part of renamedAdd_Mito_RiboS3 generic). - Fixed legend display is
Clustered_DotPlotto display percentage instead of proportion to match legend text. - Fixed
Percent_Expressingerror whengroup_by = "ident". - Fixed error that caused features in non-default assays to be returned as not found when attempting to plot.
- Fixed error in
DotPlot_scCustomthat didn't correctly passgroup.bywhen plotting (#158).
scCustomize 2.0.1 (2023-11-17)
Added
- None.
Changed
- Removed warning in
VariableFeaturePlot_scCustomnow fixed in Seurat release.
Fixes
- Fixed error in
Add_Mito_Ribo_Seuratcausing failure due to error message whenoverwrite = TRUE. - Fixed error in
Add_Top_Gene_Pct_Seuratto avoid issue that accidentally could call function on normalized data. - Fixed error in
Add_Top_Gene_Pct_Seuratthat caused error if more than one counts layer was present. - Fixed error in
QC_Histogramthat prevented plotting or titling of plots.
scCustomize 2.0.0 (2023-11-13)
Added
- Added support for metrics produced by Cell Ranger
multipipeline toRead10X_Metricsvia new parametercellranger_multi. - Added
dot_sizeparameter toSeq_QC_Plot_*family of functions. - Added two new sequencing QC functions to create and iterate barcode rank plots:
Barcode_PlotandIterate_Barcode_Rank_Plot. - Added
ident_legendparameter toQC_Plot_UMIvsGeneto control show/hide of the identity legend (#121). - Added support for sparse matrix input in
CellBender_Feature_Diff. - Added
min_count_labelinCellBender_Diff_Plotto better control feature labeling. - Allow specification of meta data column containing sample names/IDs in
Iterate_DimPlot_bySampleusing newsample_columnparameter. - Added new function
MAD_Statsto calculate to the median absolute deviation of meta.data columns by grouping variable and across entire object. - Added new function
Add_Top_Gene_Pct_Seuratto add another QC measure of cell complexity to object meta.data. Returns percentage of counts occupied by top XX genes in each cell. - Added ability to provide set of custom features to
VariableFeaturePlot_scCustomusingcustom_featuresparameter. - Added new overall cell QC metric function
Add_Cell_QC_Metricsto 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). - Added 2 new gene lists to package data for use in
Add_Cell_QC_Metricsfunction: "msigdb_qc_gene_list" and "ieg_gene_list". - Added several internal functions to support new MsigDB and IEG capabilities of
Add_Cell_QC_Metrics. - Added new parameters
plot_medianandplot_boxplottoVlnPlot_scCustom(andVlnPlot_scCustom-based plots; e.g.,QC_Plot_*family) for added visualization. - Added
QC_Histogramto plot QC features (or any feature) using simple histogram. - Added
FeatureScatter_scCustomfunction to customize Seurat'sFeatureScatterplots. - Added
figure_plotparameter to all 2D DR (t-SNE, UMAP, etc) based plots (#127).
Changed
- Large scale under the hood code adjustments to ensure compatibility with Seurat V5 object structure.
- Internal code syntax updates independent of Seurat functionality.
- HARD DEPRECATION
Split_FeatureScatterfunction has been completely deprecated and it's functionality has been moved to newFeatureScatter_scCustom. - SOFT DEPRECATION The parameter
gene_listinIterate_FeaturePlot_scCustomandIterate_VlnPlot_scCustomhas been soft-deprecated and replaced byfeaturesparameter. Specifyinggene_listwill display deprecation warning but continue to function until next major update. - The above soft deprecation was to clarify that other features besides genes can be plotted and coincides with update to functions to allow for iterative plots of meta.data or reductions in addition to assay features (#123).
- Internal rewrite of
Read10X_Metricsto use new internal helper functions. - Changed
Liger_to_Seuratto transfer the liger_object@H slot in addition to H.norm slot already moved. - Replaced
length(x = colnames(x = obj)withlength(x = Cells(x = obj)for accurate plotting based on V5 object structure. Gene_Presentnow acceptsassayparameter.- Internal reorganization of some functions within
R/for better organization. - Updated default scCustomize color palettes (
scCustomize_Palette). Now if number of colors is greater than 2 but less than 8 the default palette will beColorBlind_Pal(previously it was "polychrome"). Polychrome remains the default when number of colors is between 9-36. - Updated parameter default within
scCustomize_Palettetoggplot_default_colors = FALSEto avoid uncessary error when no value supplied. - Minimum version of scattermore package updated to v1.2.
DimPlot_scCustomwill now setlabel = TRUEiflabel.boxis set to TRUE butlabelis not changed from default.- Removed loading of full tidyverse in vignettes to remove from package suggests (lessen dependency installs when not completely needed).
- Replace Seurat
PackageCheck(now deprecated), withrlang::is_installed()for non-dependency checks. - Update vignettes with new features and bug fixes from old code.
Fixes
- Fixed issue in
Read10X_Metricsthat caused errors when reading files on windows operating system (#115). - Fixed issue in
Create_CellBender_Merged_Seuratwhen feature names are changed (underscore to dash) during object creation (#118). - Fixed error in
Read10X_h5_Mutli_Directorywhen reading Cell Rangermultidirectories. - Added new checks to
VlnPlot_scCustom,DimPlot_scCustom, andDotPlot_scCustomto avoid otherwise ambiguous error messages (#120). - Fixed internal check message accidentally user facing in
VlnPlot_scCustom(#122). - Fixed cli warning in
Cell_Highlight_Plotthat could cause function to error without proper error message. - Fixed handling of file names in
Read_*functions to avoid unnecessary errors. - Replace superseded dplyr syntax/functionality
drop_na(.data[[var]], with current dplyr syntax. - Internal code fixes to accelerate plotting functions.
- Fixed default plot colors in
VlnPlot-based plots whensplit.byis not NULL. - Fixed error when trying to plot more than two variables with
group.bywhen usingDimPlot_scCustom(#128). - Fixed errors in parameter description for
Add_Mito_Ribo_SeuratandAdd_Mito_Ribo_LIGERwhich incorrectly stated the names of new meta.data/cell.data columns to be added. - Fixed bug in
DotPlot_scCustomthat prevented it from working unlessgroup.byparameter was explicitly added. - Fixed bug in
Case_Checkcaused by typo. - Fixed color warning messages in
Cluster_Highlight_PlotandMeta_Highlight_Plotthat were too verbose. - Fixed bug in
Add_Mito_Ribo_SeuratandAdd_Mito_Ribo_LIGERwhich caused error when supplying custom list of features for non-default organism (#133). - Fixed bug in
DimPlot_scCustompreventing that errored when trying to split plot and usefigure_plotat same time.
scCustomize 1.1.3 (2023-07-19)
Added
- None.
Changed
- None.
Fixes
- Fixed manual entry for
Merge_Seurat_List.
scCustomize 1.1.2 (2023-07-18)
Added
- Added
aspect_ratioparameter to all dimensionality reduction plots to control axes ratio of output plot. - Added
plot_medianandmedian_sizeparameters toQC_Plots_*functions. - Added
split_collectparameter toFeaturePlot_scCustomto collect all guides when usingsplit.byfor a single feature (#94). - Added new parameters to
Clustered_DotPlotto allow modification of sizes of column text labels, legend text labels, and legend title labels (#96). - Added new function
Merge_Sparse_Multimodal_Allfor merging multi-modal data (1 matrix per modality) (#104). - Added new parameter to
Clustered_DotPlotnamedrow_label_fontfaceto allow control of fontface used for row labels (#103). - Added helper utility
Reduction_Loading_Present, in part to fix issue withFeaturePlot_scCustomand internal feature checking. - Added ability to turn off feature/ident clustering in
Clustered_DotPlotusing new parameters:cluster_feature,cluster_ident(#106). - Added
dot_sizeparameter to statistics plotting functionsPlot_Cells_per_SampleandPlot_Median_*family. - Added new parameter
no_legendtoIterate_Meta_Highlight_Plotto allow for plotting with a plot title instead of plot legend (#108).
Changed
- Moved
QC_Plots_Featureto useVlnPlot_scCustomunder the hood like rest ofQC_Plots_*functions. - Renamed parameter
abortinMeta_Presenttoreturn_noneto align withGene_PresentandReduction_Loading_Present. - Replace superseded dplyr syntax/functionality
summarise_at,select(.data[[var]]), andrename(.data[[var]])with current dplyr syntax. - Internal rewrite of plotting sections within
Iterate_Cluster_Highlight_PlotandIterate_Meta_Highlight_Plotto align with recent updates to baseCluster_Highlight_PlotandMeta_Highlight_Plotfunctions.
Fixes
- Fixed
QC_Plots_Featureto respect parameters when passing toVlnPlot(#91). - Fixed
Read_CellBender_h5_*functions to support CellBender outputs from STARsolo- or Cell Ranger (pre-V3)-processed data (#99). - Fixed
FeaturePlot_scCustomto allow for plotting of dimensionality reduction loadings (#97). - Fixed
Read10X_Multi_DirectoryandRead10X_h5_Multi_Directoryto support files processed with Cell Rangermultipipeline. - Fixed bug in
Merge_Seurat_Listthat preventedadd.cell.idfrom adding correct cell name prefixes (#113).
scCustomize 1.1.1 (2023-01-13)
Added
- Added
label_color_numparameter toPalettePlotallow control of color labeling. - Added ability to rotate x-axis of
Stacked_VlnPlot90 degrees or 45 (previously possible) (#84). - Added error checks to
Merge_Seurat_Listto avoid ambiguous error messages on failure. - Added
Case_Checkchecks/messages to all feature-based plotting functions.
Changed
- BREAKING CHANGE Parameter in
PalettePlothas been changed frompalettetopal. - Updated
PalettePlotto supportpalof class "colors". - Moved viridis package to Suggests and use paletteer package for viridis palette shortcut functions.
- Fixed color palette continuity in
Cluster_Highlight_PlotandMeta_Highlight_Plot. Fetch_Metais now S3 generic function that can handle either Seurat or LIGER objects.- Rearrange base R code within
R/scripts for better organization. - Completed move of all scCustomize error/warning messages from base R to cli/rlang framework.
- Move feature checking to internal function.
Fixes
- Fixed potential for column name collision error in
Add_Mito_Ribo_SeuratandAdd_Mito_Ribo_LIGER. - Fixed
Add_Mito_Ribo_Seuratto respect providedmito_name,ribo_nameandmito_ribo_namevalues. - Updated out-dated documentation for number of package functions.
- Typo/styling fixes.
scCustomize 1.1.0 (2022-12-22)
Added
- Added
mergeparameter toRead10X_GEO,Read10X_h5_GEO,Read_GEO_DelimandRead_CellBender_h5_Multi_File. - Added
raster.dpiparameter toDimPlot_LIGER. - Added
labelparameter toFeaturePlot_scCustomto avoid error collision (#80). - Added
vln_linewidthparameter to control violin outline line width (#32). - Added quick meta data getter function
Fetch_Metafor returning data.frame of object meta data. - Added
Extract_Sample_Metato extract sample-level meta data from object. - Added
Cell_Highlight_Plotfor highlight plots of custom cells not in active ident or meta data. - Added
flipparameter toClustered_DotPlotto enable axes flipping (#69).
Changed
- Updated Imports/Suggests for CRAN compatibility.
- Under the hood code updates for CRAN compatibility.
- Rearrange base R code within
R/scripts for better organization.
Fixes
- Fixed missing documentation for number of package functions.
- Typo/styling fixes.
scCustomize 1.0.2 (2022-11-22)
Added
- None.
Changed
- Updated required Seurat version (v4.3.0) to avoid bug in
FindMarkers.
Fixes
- None.
scCustomize 1.0.1 (2022-11-10)
Added
- Added
CellBender_Feature_Diffto return data.frame with count sums and differences between raw and CellBender assays. - Added
CellBender_Diff_Plotto plot differences between raw and CellBender assays using data fromCellBender_Feature_Diff.
Changed
- BREAKING CHANGE Function name changed,
Add_CellBender_Diffis new name forAdd_Cell_Bender_Diffin order to unify function names for CellBender related functions. - Updated CellBender vignette with new functions.
Fixes
- Fixed for automatic color palette selection when only plotting one group.
scCustomize 1.0.0 (2022-10-25)
Added
- Added
mito_nameparameter toQC_Plots_Mitoto allow for custom specification of meta data column name that contains mitochondrial information. - Added
QC_Plots_Combined_Vln()function to return patchwork layout of 3 QC plots. - Added Rhesus Macaque (macaca mulatta) to the accepted species list for
Add_Mito_Ribo_Seurat()andAdd_Mito_Ribo_LIGER()(#28). - Added
alpha_expandalpha_na_expparameters toFeaturePlot_scCustomto allow for control of color scale transparency (#21). *_Highlight_Plotfunctions can now plot multiple variables simultaneously using either one color for all variables or one color per variable (#34).- Added parameter
figure_plottoDimPlot_scCustom(). This removes axes and axes labels and adds axis legend on left bottom corner of plot (#40). - Added parameter
plot_legendtoStacked_VlnPlot. This solves issue with returning only one shared legend across all features being plotted (#48). - Added
Add_Cell_Complexity_SeuratandAdd_Cell_Complexity_LIGERfunctions to add cell QC complexity/novelty metric (log10(Genes) / log10(UMIs)). - Added
QC_Plots_Complexityplot for quick plotting of cell complexity score. - Added 3 new CellBender functions
Read_CellBender_h5_Mat,Read_CellBender_h5_Multi_Directory,Read_CellBender_h5_Multi_Fileto enable easy reading of new CellBender output files. - Added
raster.dpiparameter from Seurat to allDimPlotFeaturePlotorFeatureScatterbased functions. - Added
add.noiseparameter from Seurat toVlnPlot_scCustomStacked_VlnPlotfunctions. - Added
group.byas default listed parameter to added to allVlnPlotbasedQC_Plot_*. - Added
ensembl_idsparameter forAdd_Mito_Ribo_*functions. Ifensembl_ids = TRUEfunctions will retrieve stored ensembl IDs representing mitochondrial and ribosomal genes for accepted default species. - Added parameter
label_feature_yaxistoFeaturePlot_scCustom. Allows for plotting of feature names on secondary y-axis when usingsplit.by(#60). - Added
Add_Sample_Metafunction for addition of sample-level meta data to cell-level@meta.dataslot of Seurat objects. - Added a matrix check in
Read_GEO_Delimto check for issues with imported matrices. Check is modified version ofSeuratObject::CheckMatrixcalledCheckMatrix_scCustom(). Will warn if infinite, logical, non-integer (whole), or NA/NaN values are detected in input matrix. QC_Plot_UMIvsGenewill now returned filtered correlation value that takes into accountmeta_gradient_nameif provided in addition to nFeature_RNA and nCount_RNA.- Added new function
Variable_Features_ALL_LIGERwhich allows for detection/selection of variable genes from entire LIGER object instead of iterating by dataset. - Vignettes/Website updated with new function examples.
Changed
- DEPENDENCY CHANGE The required version of Seurat has been changed due to errors caused by updates to Matrix package and handling of sparse matrices. To avoid errors version requirement for Seurat has been updated to 4.2.0.
- DEPENDENCY CHANGE The dittoSeq package has been moved to Suggests to aid package installation. To catch errors a
PackageCheckwarning has been added where needed. - BREAKING CHANGE Function name for iterative
VlnPlothas been changed toIterate_VlnPlot_scCustomto reflect that it now usesVlnPlot_scCustomto generate plots. QC_Plot_*functions now useVlnPlot_scCustominternally to unify color scheme and rasterization parameters.*_Highlight_Plotfunctions no longer display "Unselected" in plot legend and usesDimPlot_scCustomto generate plots (#34).- Updated Marsh et al., 2022 citation in vignettes.
- Have begun to move information, warning, and error messages to rlang/cli framework for clarity and style.
Fixes
- Fixed DESCRIPTION file to specify colorway version upon installation (#25).
- Fixed bug preventing
low_cutofffrom plotting viaQC_Plots_Mito. - Fixed bug in
Clustered_DotPlotthat prevented setting identity colors (#29). - Fixed bug in
FeaturePlot_scCustomthat returned NULL when settingcombine = FALSE(#31). - Fixed bug in
Seq_QC_Plot_*functions which resulted in groups being plotted out of order when specifyingplot_byparameter. - Fixed bug in
Seq_QC_Plot_*functions that created color palette error when color palettes were not being used. - Fixed bug in
DimPlot_scCustomthat caused mismatch of colors between plots when usingsplit.byif one of the plots was missing 1 or more of thegroup.bylevels (#37). - Fixed bug in
VlnPlot_scCustomthat caused raster warning messages to be displayed twice (#42). - Fixed bug in
Iterate_PC_Loading_Plotsthat caused error when specifying current directory withfile_path = NULLorfile_path = "" - Fixed bug in
DotPlot_scCustomthat prevented plotting of features in meta.data slot (#44). - Fixed error messaging/reporting in
Stacked_VlnPlotwhen no supplied features were present. - Fixed bug in
plotFactors_scCustomthat was ignoring provided file name. - Fixed bug in
plotFactors_scCustomthat caused progress to only display progress up to 50% even when it was fully complete. - Fixed bug in
Clustered_DotPlotthat resulted in error related to color palettes if number of clusters was greater than 36 (#49). - Fixed bug in
Add_Mito_Ribo_LIGERthat resulted custom column names (e.g.mito_name = "pct.mt") being disregarded and also therefore issue withoverwriteparameter. (#51). - Fixed bug in
Store_Misc_Info_Seuratthat prevented function from working. - Fixed bug in
Plot_Density_Customwhen supplyingcustom_paletteand multiple features. (#51). - Fixed bug in
Clustered_DotPlotso that legend with identities is displayed by factor level of Seurat object idents (#55). - Fixed bug in
Split_FeatureScatterto remove test code that prevented function from working properly (#57). - Fixed bug in
DimPlot_All_Samples,Split_FeatureScatter, andDimPlot_scCustomthat ignored factor order when plotting groups. - Fixed error due to deprecation of functions in Matrix package v1.5-0+ (#61).
- Fixed error that prevent returning
FeaturePlot_scCustomwhen settingsplit.byand one or more of features provided was not present in object (#64). - Typo/styling fixes.
scCustomize 0.7.0 (2022-01-10)
Added
- Added
VlnPlot_scCustomfunction. - Added raster support to
Stacked_VlnPlot - Added
make_uniqueparameter toExtract_Top_Markersfunction. - Added
Clustered_DotPlotfunction. - Added Drosophila Melanogaster as default species option in
Add_Mito_Ribo_SeuratandAdd_Mito_Ribo_LIGER.
Changed
- Now requires Seurat v4.0.6 (instead of v4.0.5) to support ability to rasterize points in
VlnPlot. - viridis color palette shortcuts now contain palettes with 30 colors (increased from 10).
Fixes
- Fixed
Read_Metrics_10Xerrors that occurred due to differing outputs depending on Cell Ranger version or type of assay. - Added direct
importFromforDefaultDimReducfrom SeuratObject package to avoid potential errors. - Fixed typos/styling in function documentation.
scCustomize 0.6.3 (2021-12-16)
Fixes
- Fixed
Read_Metrics_10Xerrors that occurred due to differing outputs depending on Cell Ranger version or type of assay. - Added direct
importFromforDefaultDimReducfrom SeuratObject to avoid potential errors.
scCustomize 0.6.2 (2021-12-01)
Fixes
- Fixed barcode name duplication checks in
Merge_Sparse_Data_All. (#8) - Fixed package imports in DESCRIPTION to avoid installation errors.
- Fixed NULL check in
Read_Metrics_10X,Read10X_Multi_Directory, andRead10X_h5_Multi_Directory.
scCustomize 0.6.1 (2021-11-19)
Added
- Added plot spacing control to
StackedVlnPlotwith parametersplot_spacingandspacing_unit. (#6) - Added
scCustomize_Palettefunction select palette to use (simplify internal code).
Changes
- Changed citation info to reflect global DOI and not version DOI.
Fixes
- Restore package color palette defaults to
Iterate_VlnPlot. - Fix
Iterate_...function checks for file path parameter iffile_path = NULL.
scCustomize 0.6.0 (2021-11-16)
Added
- scCustomize is public!! Version 0.6.0 is released!
Changes
- Many function names have changed since private release see reference page/manual for updated function names.