GithubHelp home page GithubHelp logo

simples's Introduction

SIMPLEs: single-cell RNA sequencing imputation and cell clustering methods by modeling gene module variation

Authors: Zhirui Hu, Songpeng Zu

Introduction

SIMPLE is a R package that imputes "dropout" values (i.e. zero or small entries) in the single cell RNASeq data based on cell similarities and gene correlations. The imputed matrix can be used for dimension reduction and visualization of the cell spectrum, to identify markers between different samples and construct gene co-expression network.

How it works

SIMPLEs iteratively clusters the cells, identifies correlated gene modules, infers the probability of the dropout event for each zero entry, and imputes zeros within each cluster utilizing the expression of other correlated genes. It will impute the technical zeros (or "dropout") while maintain the biological zeros at low expression level.

The imputation process is based on the correlations between genes within similar cell types, which is modeled by several common latent factors or gene modules as well as the gene-specific dropout rate. Although the dropout rate can be estimated from the empirical distribution of gene expression in the scRNASeq, it could interference with estimating the gene correlation structure, especially for lowly expressed genes.

Integrating with the corresponding bulk RNASeq data which serves as the average gene expression across cells, provides extra sources of information on the dropout rate per gene. It can give a better estimate of the "dropout" rate which would influence how much the data should be imputed.

We called our method integrating bulk RNASeq data as SIMPLE-B, otherwise SIMPLE. We referred our toolset including SIMPLE and SIMPLE-B as SIMPLEs.

Installation

The package is not on CRAN yet. You can use the following codes in R to install it.

#> use devtools package to install the repo from github
#> - if you want to build the vignettes for reference, you can set 
#>   build_vignettes as TRUE.
devtools::install_github("JunLiuLab/SIMPLEs", ref="master", build_vignettes=TRUE)

Vignettes

You can view the vignettes in the package as reference.

vignette(topic="SIMPLEs_example", package="SIMPLEs")

Data

In the vignettes, we introduced how to simulate the single cell RNASeq data. Furthermore, we provided a real dataset from a recent study. You can view the details of the data, and run the analyses using SIMPLEs.

# describe the details of the real dataset
?SIMPLEs::chu

Reference

SIMPLEs: a single-cell RNA sequencing imputation strategy preserving gene modules and cell clusters variation

Zhirui Hu, Songpeng Zu et al., 2020 (https://www.biorxiv.org/content/10.1101/2020.01.13.904649v1?rss=1)

Reproducible codes

The codes related with the reference above: https://github.com/JunLiuLab/SIMPLEs2020

simples's People

Contributors

beyondpie avatar xyz111131 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

simples's Issues

task 33 failed - "y is constant; gaussian glmnet fails at standardization step"

Hi! Thank you for the algorithm.

There is a problem difficult for me to solve. Every time I wanted to use the data simulated by splatter, it threw this error:
Error in { :
task 33 failed - "y is constant; gaussian glmnet fails at standardization step"
Calls: SIMPLE -> %dopar% -> <Anonymous>
The number after "task" changed every time.

But if I use real data instead of simulation data, such things won't happen. What does this error mean? How can I solve it?

Thank you for your time.

Move the reproducible codes into a new repo

@xyz111131

We need to keep SIMPLEs clear, and it should be an R package with demos or tutorials. Other codes (the reproducible ones for the paper) might be put into a new repo specific for its aim.

I will move those codes today if you think it's not bad.

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.