Learn R Programming

BASiCS

Single-cell mRNA sequencing can uncover novel cell-to-cell heterogeneity in gene expression levels within seemingly homogeneous populations of cells. However, these experiments are prone to high levels of technical noise, creating new challenges for identifying genes that show genuine heterogeneous expression within the group of cells under study.

BASiCS (Bayesian Analysis of Single-Cell Sequencing data) is an integrated Bayesian hierarchical model that propagates statistical uncertainty by simultaneously performing data normalisation (global scaling), technical noise quantification and two types of supervised downstream analyses:

  • For a single group of cells [1]: BASiCS provides a criterion to identify

highly (and lowly) variable genes within the group.

  • For two (or more) groups of cells [2]: BASiCS allows the identification

of differentially expressed genes between the groups. As in traditional differential expression tools, BASiCS can uncover changes in mean expression between the groups. Besides this, BASiCS can also uncover changes in over-dispersion --- a measure for the residual cell-to-cell variation that is observed after accounting for technical noise. This feature has led, for example, to novel insights in the context of immune cells across aging [3].

In both cases, a probabilistic output is provided, with posterior probability thresholds calibrated through the expected false discovery rate (EFDR) [4].

Currently, BASiCS relies on the use of spike-in genes --- that are artificially introduced to each cell's lysate --- to perform these analyses.

Important: BASiCS has been designed in the context of supervised experiments where the groups of cells (e.g. experimental conditions, cell types) under study are known a priori (e.g. case-control studies). Therefore, we DO NOT advise the use of BASiCS in unsupervised settings where the aim is to uncover sub-populations of cells through clustering.

For technical details, references are provided at the bottom of this document.

Installation

BASiCS is available in Bioconductor. To install the current release use:

source("https://bioconductor.org/biocLite.R")
biocLite("BASiCS")

Repeat using the devel version of Bioconductor for the latest development version.

Alternatively, the experimental version of BASiCS (this might be unstable) can be installed from GitHub:

# install.packages("devtools")
devtools::install_github("catavallejos/BASiCS", build_vignettes = TRUE)

This installation might fail if some of the dependency libraries are not yet installed. If so, please run the following lines and repeat the installation.

#library(devtools)
#source("http://bioconductor.org/biocLite.R")
#biocLite("BiocGenerics")
#biocLite("scran")
#install.packages("Rcpp")

After a successful installation, the BASiCS library can be loaded using[^footnoteInstall]

library(BASiCS)

[^footnoteInstall]: The warning "No methods found in "BiocGenerics"" might appear. Please ignore. BASiCS imports some of the generic functions provided by BiocGenerics that do not have any methods attached.

Installation troubleshooting

A summary of the installation errors that have been reported for BASiCS is provided here. If you encounter any additional issues, please let us know so that we can update this information.

How to use BASiCS?

BASiCS includes a vignette where its usage is illutrated. To access the vignette, please use:

vignette('BASiCS')

Individual topics are summarized in the BASiCS wiki:

Copy Link

Version

Version

1.1.0

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Catalina Vallejos

Last Published

February 10th, 2020

Functions in BASiCS (1.1.0)

BASiCS_D_TestDE

Detection of genes with changes in expression.
BASiCS_DenoisedCounts

Calculates denoised expression expression counts
ChainSC

Extract from the chain obtained in Vallejos et al (2016): single-cell samples
Summary

'Summary' method for BASiCS_Chain objects
BASiCS_DenoisedRates

Calculates denoised expression rates
BASiCS_DetectHVG

Detection method for highly and lowly variable genes
BASiCS_TestDE

Detection of genes with changes in expression
BASiCS_VarThresholdSearchHVG

Detection method for highly and lowly variable genes using a grid of variance contribution thresholds
BASiCS_MCMC

BASiCS MCMC sampler
BASiCS_Sim

Generates synthetic data according to the model implemented in BASiCS
displayChainBASiCS-BASiCS_Chain-method

Accessors for the slots of a BASiCS_Chain object
displaySummaryBASiCS-BASiCS_Summary-method

Accessors for the slots of a '>BASiCS_Summary object
newBASiCS_Data

Creates a SingleCellExperiment object from a matrix of expression counts and experimental information about spike-in genes
plot-BASiCS_Chain-method

'plot' method for BASiCS_Chain objects
BASiCS_Filter

Filter for input datasets
BASiCS_LoadChain

BASiCS_Summary-methods

'show' method for BASiCS_Summary objects
BASiCS_Summary

The BASiCS_Summary class
plot-BASiCS_Summary-method

'plot' method for BASiCS_Summary objects
BASiCS_Chain-methods

'show' method for BASiCS_Chain objects
BASiCS_Chain

The BASiCS_Chain class
BASiCS_VarianceDecomp

Decomposition of gene expression variability according to BASiCS
ChainRNA

Extract from the chain obtained in Vallejos et al (2016): pool-and-split samples
makeExampleBASiCS_Data

Create a synthetic SingleCellExperiment example object with the format required for BASiCS
newBASiCS_Chain

Creates a BASiCS_Chain object from pre-computed MCMC chains