bcbioSingleCell 0.2.1 (2018-08-19)

Major changes

  • Moved clustering and marker templates to pointillism package, since all clustering code has been moved there. The quality control template using the filterCells() function is still provided here.

Minor changes

  • prepareSingleCellTemplate(): Improved internal code to use updated prepareTemplate(), which has been migrated to basejump package.
  • Added back the cellranger_small example dataset.

bcbioSingleCell 0.2.0 (2018-08-09)

This is a significant maintenance release designed to simplify the package for long-term stability. Here we are removing code support for Seurat and visualization of cell clustering. This functionality has been moved to the new pointillism package. We have streamlined bcbioSingleCell to simply import bcbio single-cell data using the bcbioSingleCell() constructor or Cell Ranger data with the readCellRanger() function. The package continues to provide quality control visualization (see plotQC()) and low-quality cell removal with the filterCells() function.

Major changes

Defunct functions

  • Removed from exports (for simplicifcation): plotClusters(), plotFeatures(), quantileHeatmap(), readMarkers(), readMarkersFile().

Minor changes

  • No longer exporting mapCellsToSamples(). This is now only called internally.
  • Updated documentation to use roxygen2 v6.1.

bcbioSingleCell 0.1.18 (2018-07-31)

Major changes

  • Now recommending BiocManager instead of BiocInstaller to install.
  • filterCells() now supports zinbwave = TRUE for automatic zero-inflation weights calculation, using the zinbwave package.
  • Now requiring in bcbioSingleCell object validity checks that all sampleData() columns are defined in colData(), and that the factor levels also match. If you run into an error because of this change, post an issue on GitHub and we’ll sort it out. The validity check method now also checks to make sure that all metricsCols are defined in colData().
  • aggregateReplicates() now keeps track of interesting groups metadata better and returns a SingleCellExperiment containing this information.
  • seurat to SingleCellExperiment now keeps track of rowRanges, if they have been stashed inside the seurat object.
  • Minimal bcbioSingleCell (indrops_small) and SingleCellExperiment (cellranger_small) objects now contain dimensionality reduction information calculated with Seurat. See the scripts in data-raw/ for how this was performed.
  • metrics(): SingleCellExperiment method now just returns colData() with interestingGroups column defined internally with uniteInterestingGroups(). Previously we updated the sampleData to long format here dynamically, but this is no longer needed now that colData() always must contain sample data in long format.
  • sampleData<-() assignment method now dynamically updates the sample metadata in colData() to match.
  • Simplified SingleCellExperiment method extension for seurat objects.
  • Added support for global ggplot2 discrete color palettes using bcbio.discrete.color and bcbio.discrete.fill with options().

bcbioSingleCell 0.1.17 (2018-07-21)

Major changes

  • readCellRanger() now supports HDF5 data (.h5 files) or MatrixMarket Exchange Format explicitly, using the format argument. The function also now supports user-requested import of raw whitelisted cellular barcodes, using the filtered argument. By default, filtered counts from Cell Ranger are imported.
  • Removed support for zingeR in diffExp(). We will consider adding this functionality back in a future update, once the package is available on Bioconductor. For now, we’re recommending usage of zinbwave.
  • filterCells now supports nCells argument for hard cutoffs, applied after other QC filtering cutoffs using nUMI.
  • Internal data has been renamed to snake_case format, for improved consistency. Note that cell_cycle_markers is used in place of cellCycleMarkers, and cell_type_markers in place of cellTypeMarkers. There’s no easy way to link these files as aliases, so this is a necessary breaking change.

Minor changes

  • Improved R Markdown template defaults for quality control and clustering.
  • Now importing functions related to differential expression into the package NAMESPACE, including DESeq2, edgeR, and zinbwave.
  • Parallelization is no longer used to load samples, improving handling in an HPC cluster environment. We will consider using BiocParallel in a future update.
  • Now requiring ggplot2 v3.0. Switched to using aes() instead of aes_string() internally, using new tidyeval syntax.
  • Removed additional single-cell toolkit packages in Suggests, including scater and scran. This helps speed up build checks on Travis CI.
  • Reexported functions have been moved to the bcbioBase package.
  • Improved internal consistency between the bcbioSingleCell() and readCellRanger() data import functions.

Additional notes

bcbioSingleCell 0.1.16 (2018-06-20)

R Markdown templates

  • Now recommending 1000 UMIs by default, and a maximum of 10% mitochondrial transcripts.
  • Seurat clustering now calculates multiple resolutions, suggesting 0.4, 0.8, and 1.2 by default. Dimensional reduction plots have been updated to support looping of these multiple resolutions.

Minor changes

  • as(object, "SingleCellExperiment") coercion now slots stashed metadata into SingleCellExperiment, if defined.
  • Simplified the internal code for sampleData(). seurat objects now share the same code as SingleCellExperiment, and return NULL if the sample data is not defined. The metrics() function continues to slot empty metadata in sampleID, sampleName, and interestingGroups() if not defined.
  • SingleCellExperiment is used as default method over seurat where applicable: fetchData family, plotDimensionalReduction family, plotMarker family, plotFeature family, plotGene family, and plotCellTypesPerCluster(). The internal code hasn’t changed, it just is defined primarily for SingleCellExperiment.
  • dimRed argument has been renamed to reduction, where applicable.
  • topBarcodes() can now return either a data.frame or list, containing the top barcodes grouped by sample.

bcbioSingleCell 0.1.15 (2018-06-13)

Minor changes

  • Updated internal code to use text as primary argument in markdownHeader() calls.
  • Updated example datasets and unit tests to match.
  • Working on using pbmc4k as example dataset for vignette.

bcbioSingleCell 0.1.14 (2018-06-05)

Major changes

  • Multiplexed Cell Ranger barcodes are now reformatted to be more readable and compatible with the mapCellsToSamples() utility function. This change helps simplify the internal code for cell2sample(). For example in the pbmc4k dataset, the barcode IDs are sanitized from TTTGGTTTCGCTAGCG-1 to “pbmc4k_1_TTTGGTTTCGCTAGCG”. The “1” here denotes 1 sample in the matrix, which is how Cell Ranger denotes multiplexed samples in a single counts matrix. Note that the “-” character is illegal in names, so we consistently sanitize barcodes to contain “_” instead. See help("make.names") for more information on syntactically valid names in R.
  • readCellRanger() no longer requires reference data defined by refdataDir, although this is still recommended.

Minor changes

  • Resaved example datasets.
  • Switched the example cellranger_small and seurat_small datasets to the publicly available pbmc4k dataset from 10X Genomics. Here we’ve subset the top 500 cells and genes by abundance. We’ll use either the pbmc4k or pbmc8k dataset for the vignette in a future update.
  • bcbioSingleCell() and readCellRanger() functions now consistently default to not requiring sampleMetadataFile, which is now NULL by default. For bcbioSingleCell(), if a custom sample metadata file is not provided, the function reads from the bcbio YAML metadata. For readCellRanger(), the function uses minimalSampleData() internally to return minimal metadata, containing sampleName and description columns.
  • Broke out internal .sampleDirs() function to bcbioSingleCell() and readCellRanger() functions.
  • Improved plotMarker documentation examples to use mitochondrial genes.
  • Using seurat_small in place of Seurat::pbmc_small in working examples.

Internal code changes

  • Now consistently using dplyr for piped data.frame as much as possible, where applicable. Code is being updated to use tidyeval.

bcbioSingleCell 0.1.13 (2018-05-29)

Minor changes

  • t-SNE and UMAP plot improvements.

bcbioSingleCell 0.1.12 (2018-05-25)

Major changes

  • No longer using automatic camel case sanitization for metrics() or fetchData return column names.
  • Improved R Markdown clustering and marker templates to optionally support UMAP and dark mode in the YAML parameters.

Minor changes

  • Using original Seurat mapping names for data: tSNE_1, tSNE_2, PC1, PC2, UMAP1, UMAP2.
  • Ensure transcript-level counts always have stripTranscriptVersions() command applied, to remove the Ensembl transcript versions if present.
  • No longer using labels (e.g. A, B, C, D) on ggplot grid return.
  • Note that “phase” has been renamed to “Phase” in the R Markdown clustering for cell-cycle regression PCA.

bcbioSingleCell 0.1.11 (2018-05-23)

New functions

Major changes

  • Dimensional reduction and marker plots no longer use dark mode by default. The default color palette support for marker plots has been improved to consistently use viridis.
  • diffExp(): improved internal code to work directly on SingleCellExperiment, removing the need to pass design and group parameters internally. Also added unit testing against zinbwave, zingeR, and edgeR support. DESeq2 is supported but runs slowly.
  • Reworked plotFeature() and plotMarker() family of functions. Improved the color palette support when dark = FALSE, now using a flipped viridis plasma color palette.
  • aggregateReplicates() function has been reworked to return a SingleCellExperiment object instead of bcbioSingleCell. The v0.2.4 update of bcbioRNASeq behaves similarly with this generic.

Minor changes

bcbioSingleCell 0.1.10 (2018-05-19)

Minor changes

bcbioSingleCell 0.1.9 (2018-05-18)

Major changes

  • No longer attempting to sanitize the rownames for seurat objects in coercion method. This helps maintain the gene symbol appearance in plotting functions for genes with hyphens in the names.

Minor changes

  • Using BiocParallel::SerialParam() internally for zinbwave in diffExp().
  • Simplified cell2sample() internal code to always use mapCellsToSamples() instead of attempting to use a stashed vector inside metadata() for SingleCellExperiment method.
  • Removed internal .applyFilterCutoffs(), which is no longer necessary since this functionality is supported in the S4 subset method.
  • Simplified assert checks inside fetchGene() functions.
  • plotCellTypesPerCluster(): revert back to dark = TRUE by default.
  • Consolidated plotMarker and plotFeature functions in the documentation.
  • sanitizeMarkers(): Improved gene identifier matching.
  • topMarkers() now defaults to coding = FALSE by default, since not all datasets will contain biotype information.

bcbioSingleCell 0.1.8 (2018-05-16)

Minor changes

  • Initial updateObject() method support for bcbioSingleCell class.
  • Relaxed validObject() validity check to not require sample-level metadata in colData() yet.

bcbioSingleCell 0.1.7 (2018-05-15)

New functions

  • Added support for Uniform Manifold Approximation and Projection (UMAP) with the plotUMAP() and fetchUMAPData() functions. These work similarly to the other plotDimensionalReduction() and fetchData() functions.

Major changes

  • Now adding sample-level metadata into colData() slot, for better downstream compatibility with other packages that work with SingleCellExperiment container class. Unique per-sample rows are still saved internally in the sampleData() slot.
  • Now recommending ECDF as the default geom for quality control plots, where applicable.
  • filterCells() now supports minUMIs = c("knee", "inflection") for automatic filtering based on the cellular barcode ranks. Internally this is handled by DropletUtils::barcodeRanks().

Minor changes

  • Attempting to re-enable libgsl-dev installation for zinbwave on Travis CI.
  • Suggesting BiocParallel for zinbwave call in diffExp().
  • Now importing Seurat functions into NAMESPACE.
  • Consolidated fetchData() functions in the documentation.
  • Consolidated plotDimensionalReduction() functions in the documentation.
  • Updated aggregateReplicates() internal code. This function again only supports aggregation of bcbioSingleCell objects that have been filtered using the filterCells() function.
  • Now using Seurat::Convert() internally to coerce seurat class object to SingleCellExperiment, using as(seurat, "SingleCellExperiment"). This utility function was added to Seurat v2.3.1.