Learn R Programming

LIGER (Linked Inference of Genomic Experimental Relationships)

Now we have a comprehensive documentation site for the latest version of rliger (2.0)!

LIGER (installed as rliger ) is a package for integrating and analyzing multiple single-cell datasets, developed by the Macosko lab and maintained/extended by the Welch lab. It relies on integrative non-negative matrix factorization to identify shared and dataset-specific factors.

Check out our Cell paper for a more complete description of the methods and analyses. To access data used in our SN and BNST analyses, visit our study "SCP466" on the Single Cell Portal.

LIGER can be used to compare and contrast experimental datasets in a variety of contexts, for instance:

  • Across experimental batches
  • Across individuals
  • Across sex
  • Across tissues
  • Across species (e.g., mouse and human)
  • Across modalities (e.g., scRNAseq and spatial transcriptomics data, scMethylation, or scATAC-seq)

Once multiple datasets are integrated, the package provides functionality for further data exploration, analysis, and visualization. Users can:

  • Identify clusters
  • Find significant shared (and dataset-specific) gene markers
  • Compare clusters with previously identified cell types
  • Visualize clusters and gene expression using t-SNE and UMAP

We have also designed LIGER to interface with existing single-cell analysis packages, including Seurat.

Citation

If you use LIGER in your research please cite our paper correspondingly:

  • Generally the Cell paper should be cited:

Joshua D. Welch and et al., Single-Cell Multi-omic Integration Compares and Contrasts Features of Brain Cell Identity, Cell, VOLUME 177, ISSUE 7, P1873-1887.E17 (2019), https://doi.org/10.1016/j.cell.2019.05.006

  • For the rliger package:

Liu, J., Gao, C., Sodicoff, J. et al. Jointly defining cell types from multiple single-cell datasets using LIGER. Nat Protoc 15, 3632–3662 (2020), https://doi.org/10.1038/s41596-020-0391-8

  • For online iNMF integration method:

Gao, C., Liu, J., Kriebel, A.R. et al. Iterative single-cell multi-omic integration using online learning. Nat Biotechnol 39, 1000–1007 (2021), https://doi.org/10.1038/s41587-021-00867-x

  • For UINMF integration method:

Kriebel, A.R., Welch, J.D. UINMF performs mosaic integration of single-cell multi-omic datasets using nonnegative matrix factorization. Nat Commun 13, 780 (2022), https://doi.org/10.1038/s41467-022-28431-4

Feedback

If you have any questions, comments, or suggestions, you are welcomed to open an Issue!

Usage

For usage examples and guided walkthroughs, check the vignettes directory of the repo.

Meanwhile, since version 2.0.0, LIGER is massively updated for usability and interoperability with other packages. Below are links to the introduction of new features.

If you need to refer to the tutorials for the old version of rliger, please check the GitHub archive v1.0.1, download the desired rendered HTML files and open them in your browser.

Sample Datasets

The rliger package provides different types of small toy dataset for basic demos of the functions. After attaching the package in an R session, you can load them with:

data("pbmc")
data("pbmcPlot")
data("bmmc")

We also provide a set of datasets for real-world style demos, including scRNAseq, scATACseq, spatial transcriptomics and DNA methylation data. They are described in detail in the articles that make use of them. Please check them out from the links above.

Copy Link

Version

Install

install.packages('rliger')

Monthly Downloads

1,327

Version

2.0.1

License

GPL-3

Maintainer

Yichen Wang

Last Published

April 4th, 2024

Functions in rliger (2.0.1)

commandDiff

Check difference of two liger command
createLigerDataset

Create in-memory ligerDataset object
convertOldLiger

Convert old liger object to latest version
coordinate

Access ligerSpatialDataset coordinate data
.ggCellViolin

Produce single violin plot with data frame passed from upstream
createH5LigerDataset

Create on-disk ligerDataset Object
createLiger

Create liger object
.complexHeatmapDotPlot

Generate dot plot from input matrix with ComplexHeatmap
.ggScatter

Produce single scatter plot with data frame passed from upstream
.ggplotLigerTheme

Generic ggplot theme setting for rliger package
isH5Liger

Check if a liger or ligerDataset object is made of HDF5 file
getProportionMito

Calculate proportion mitochondrial contribution
exportInteractTrack

Export predicted gene-pair interaction
getFactorMarkers

Find shared and dataset-specific markers
imputeKNN

Impute the peak counts from gene expression data referring to an ATAC dataset after integration
runPairwiseDEG

Find DEG between two groups
importPBMC

Import prepared dataset publically available
is.newLiger

Check if given liger object if under new implementation
.plotHeatmap

General heatmap plotting with prepared matrix and data.frames
downsample

Downsample datasets
ligerCommand-class

ligerCommand object: Record the input and time of a LIGER function call
ligerDataset-class

ligerDataset class
linkGenesAndPeaks

Linking genes to putative regulatory elements
liger-class

liger class
louvainCluster-deprecated

[Deprecated] Louvain algorithm for community detection
ligerMethDataset-class

Subclass of ligerDataset for Methylation modality
ligerRNADataset-class

Subclass of ligerDataset for RNA modality
ligerSpatialDataset-class

Subclass of ligerDataset for Spatial modality
mergeSparseAll

Merge matrices while keeping the union of rows
ligerToSeurat

Convert between liger and Seurat object
mergeH5

Merge hdf5 files
normalize

Normalize raw counts data
modalOf

Return preset modality of a ligerDataset object or that of all datasets in a liger object
makeFeatureMatrix

Fast calculation of feature count matrix
makeRiverplot-deprecated

[Deprecated] Generate a river (Sankey) plot
makeInteractTrack-deprecated

[Deprecated] Export predicted gene-pair interaction
ligerATACDataset-class

Subclass of ligerDataset for ATAC modality
optimizeSubset

Perform factorization for subset of data
optimizeNewLambda

Perform factorization for new lambda value
rawPeak

Access ligerATACDataset peak data
plotCellViolin

Generate violin/box plot(s) using liger object
pbmcPlot

liger object of PBMC subsample data with plotting information available
mapCellMeta

Create new variable from categories in cellMeta
plotClusterGeneDot

Make dot plot of gene expression in cell groups
plotClusterFactorDot

Make dot plot of factor loading in cell groups
pbmc

liger object of PBMC subsample data with Control and Stimulated datasets
online_iNMF-deprecated

[Deprecated] Perform online iNMF on scaled datasets
optimizeALS-deprecated

[Deprecated] Perform iNMF on scaled datasets
plotSpatial2D

Visualize a spatial dataset
plotProportion

Visualize proportion across two categorical variables
plotDimRed

Generate scatter plot(s) using liger object
plotVarFeatures

Plot the variance vs mean of feature expression
plotDensityDimRed

Create density plot basing on specified coordinates
plotSankey

Make Riverplot/Sankey diagram that shows label mapping across datasets
plotMarkerHeatmap

Create heatmap for showing top marker expression in conditions
plotGeneHeatmap

Plot Heatmap of Gene Expression or Factor Loading
plotGeneLoadings

Visualize factor expression and gene loading
optimizeNewK

Perform factorization for new value of k
plotGroupClusterDimRed

Comprehensive group splited cluster plot on dimension reduction with proportion
optimizeNewData

Perform factorization for new data
plotGeneViolin

Visualize gene expression or cell metadata with violin plot
quantileAlignSNF

Quantile align (normalize) factor loadings
quantile_norm-deprecated

[Deprecated] Quantile align (normalize) factor loading
reexports

Objects exported from other packages
plotVolcano

Create volcano plot for Wilcoxon test result
readLiger

Read liger object from RDS file
quantileNorm

Quantile Align (Normalize) Factor Loadings
removeMissing

Remove missing cells or features from liger object
read10X

Load in data from 10X
readSubset

[Deprecated] See downsample
runGSEA

Analyze biological interpretations of metagene
runGeneralQC

General QC for liger object
restoreH5Liger

Restore links (to HDF5 files) for reloaded liger/ligerDataset object
retrieveCellFeature

Retrieve a single matrix of cells from a slot
runDoubletFinder

Doublet detection with DoubletFinder
runGOEnrich

Run Gene Ontology enrichment analysis on differentially expressed genes.
runCluster

SNN Graph Based Community Detection
runCINMF

Perform consensus iNMF on scaled datasets
makeInteractTrack

Deprecated functions in package rliger.
reverseMethData

Create "scaled data" for DNA methylation datasets
selectGenesVST

Select variable genes from one dataset with Seurat VST method
runIntegration

Integrate scaled datasets with iNMF or variant methods
runTSNE

Perform t-SNE dimensionality reduction
runOnlineINMF

Perform online iNMF on scaled datasets
scaleNotCenter

Scale genes by root-mean-square across cells
runUMAP

Perform UMAP Dimensionality Reduction
runINMF

Perform iNMF on scaled datasets
runUINMF

Perform Mosaic iNMF (UINMF) on scaled datasets with unshared features
sub-liger

Subset liger with brackets
selectGenes

Select a subset of informative genes
subsetLiger

Subset liger object
subsetLigerDataset

Subset ligerDataset object
sub-ligerDataset

Subset ligerDataset object
sub-sub-liger

Get cell metadata variable
writeH5

Write in-memory data into H5 file
calcDatasetSpecificity

Calculate a dataset-specificity score for each factor
calcAgreement

Calculate agreement metric after integration
bmmc

liger object of bone marrow subsample data with RNA and ATAC modality
as.liger.dgCMatrix

Converting other classes of data to a liger object
as.ligerDataset.ligerDataset

Converting other classes of data to a ligerDataset object
closeAllH5

Close all links (to HDF5 files) of a liger object
calcPurity

Calculate purity by comparing two cluster labeling variables
H5Apply

Apply function to chunks of H5 data in ligerDataset object
calcAlignment

Calculate alignment metric after integration
calcARI

Calculate adjusted Rand index (ARI) by comparing two cluster labeling variables