Coder Social home page Coder Social logo

starxian / bindsc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kchen-lab/bindsc

0.0 0.0 0.0 46.3 MB

Bi-order integration (in silico multi-omics data) of single cell RNA sequencing, single cell ATAC sequencing, spacial transcriptomics and CyTOF data

License: GNU General Public License v3.0

R 100.00%

bindsc's Introduction

bindSC (Bi-order INtegration of multi-omics Data from Single Cell sequencing technologies) is an R package for single cell multi-omic integration analysis, developed and maintained by Ken chen's lab in MDACC. bindSC is developed to address the challenge of single-cell multi-omic data integration that consists of unpaired cells measured with unmatched features across modalities. Previous methods such as Seurat, Liger, Harmony did not work on this case unless match feature empricallcy. For example, integration of scRNA-seq and scATAC-seq data requires to calculate the gene/promoter activity by counting peaks in gene body, which always loses information. This strategy also did not work on integrating scRNA-seq and cytof data becasue gene pression and protein abundance level is not always correlated due to sparsity of scRNA-seq data or post translational modification.

The core algorithm implemented in bindSC package is BiCCA (Bi-order Canonical Correlation Analysis), which utilizes a transition matrix Z (M features by L samples) to bridge observed X (M features by K cells) with Y (N features by L cells). Initialized from prior knowldge, the matrix Z is solved iteratively by maximizing correlation of pair (X, Z) and correlation of pair (Y, Z) simultaneously. Under estimated matrix Z, the cell/feature correspondence across modalities can be obtained by implementing standard CCA on pair (X, Z) and pair (Y, Z) respectively.

The following visualization - integration of snRNA and snATAC data (use 10x multiOme data from mouse retina bipolar cell types as validation) - is a demo to show how bindSC improves the label transfer accuracy of snATAC data during the iteration process. The left panel shows cells from snRNA data in co-embeddings. The middel panel shows cells from snATAC data in co-embeddings. The right panel shows label transfer accuracy on BC cell types. The iteration 0 is the result from traditional CCA (Integration is restricted to gene activity matrix)

The following visualization - integration of scRNA and protein data (use CITE-seq as validation) - is a demo to show how bindSC improves the gene score matrix Z during the iteration process. The left panel shows cells from Protein data in co-embeddings. The middel panel shows cells from RNA data in co-embeddings. The right panel shows the comparsion of updated gene score matrix with the measured protein abundance level (e.g., the gold standard). The iteration 0 is the result from traditional CCA (Integration is restricted to only 25 homologous protein genes)

Once multiple datasets are integrated, bindSC provides functionality for further data exploration, analysis, and visualization. User can:

  • Jointly defining cell types from multi-omic datasets
  • Identifying comprehensive molecular multi-view of biological processes in cell type level.

Improvements and new features will be added on a regular basis, please contact [email protected] or [email protected] with any question.

Version History

v1.0.0 [01/03/2021]

  • Add the modality specfic weighting factor on the objective fucntion
  • Add the weighting factor of initilized gene score matrix on the objective function
  • bindSC is able to take low-dimension representaions (for example PCs/LSI) from orignal matrix as input for integration. This will save computational time dramatically for large-scale data.

v1.0.0 [11/14/2020]

  • Add integraion of scRNA-seq and cytof data demo from CITE-seq technology

v1.0.0 [9/9/2020]

  • Update parameter optimization module
  • Provide joint profiles of gene expression, chromatin accessibility, and TF activity on pseudocell level.

v1.0.0 [7/7/2020]

  • Release bindSC.

System Requirements

Hardware requirements

The bindSC package requires only a standard computer with enough RAM to support the in-memory operations. For minimal performance, please make sure that the computer has at least about 10 GB of RAM. For optimal performance, we recommend a computer with the following specs:

  • RAM: 10+ GB
  • CPU: 4+ cores, 2.3 GHz/core

Before setting up the bindSC package, users should have R version 3.6.0 or higher, and several packages set up from CRAN and other repositories. The user can check the dependencies in DESCRIPTION.

Installation

bindSC is written in R and can be installed by following R commands:

$ R
> install.packages('devtools')
> library(devtools)
> install_github('KChen-lab/bindSC')

Users can also install bindSC from source code:

$ git clone https://github.com/KChen-lab/bindSC.git
$ R CMD INSTALL bindSC

Usage

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

We also provided comparison of bindSC with available tools including Seurat, LIGER, and Harmony on above 3 benchmarking datasets

Bug report

License

This project is covered under the GNU General Public License 3.0.

Citation

Dou J, Liang S, Mohanty V, Miao Q, Huang Y, Liang Q, Cheng X, Kim S, Choi J, Li Y, Li L.Bi-order multimodal integration of single-cell data. Genome biology. 2022 Dec;23(1):1-25

bindsc's People

Contributors

jinzhuangdou avatar lshh125 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.