Git Product home page Git Product logo

enimpute's Introduction

This is improved documentation and update code of EnImpute. I hold no guarentee of the accuracy of changes I made until the pull request is approved by the authors.

EnImpute paper is published now and should be cited as follows if used:

Zhang, X. F., Ou-Yang, L., Yang, S., Zhao, X. M., Hu, X., & Yan, H. (2019). EnImpute: imputing dropout events in single-cell RNA-sequencing data via ensemble learning. Bioinformatics, 35(22), 4827-4829.

Contents of this archive

(1) pkg: subdirectory that contains the R package. (2) down_sampling_experiments: subdirectory that contains scripts for performing down-sampling experiments. (3) shiny: subdirectory that contains the Shiny application. (4) EnImpute-manual.pdf: reference manual.

The EnImpute package has the following R-package dependencies:

  • DrImpute
  • Rmagic
  • rsvd
  • SAVER
  • Seurat
  • scImpute
  • scRMD
  • stats. The dependencies will be automatically installed along with EnImpute. If the dependencies are not installed correctly, please install them by yourself. You can install the dependencies using the following commands:
install.packages(c("DrImpute","rsvd","Seurat","stats","PMA","devtools"))
devtools::install_github("mohuangx/SAVER")
devtools::install_github("Vivianstats/scImpute")       
devtools::install_github("ChongC1990/scRMD")
## Adding these to install an old version of Seurat to access AddImputeScore function used by EnImpute
devtools::install_github("statsbomb/SDMTools")
## If you have New Version of Seurat(4.2) you need to downgrade it to version 2. I tried using two different Seurat version using code commented below but it failed

## To Downgrade
source("https://z.umn.edu/archived-seurat")
remotes::install_version(package = 'Seurat', version = package_version('2.3.4'))
# Creating a subdirectory in ErImpute folder
# First clone the SeuratForMayer2018 repo
#dir.create("SeuratForMayerv2")
#install.packages("SeuratForMayer2018/",repos = NULL, type = "source",lib="SeuratForMayerv2")
#library(Seurat, lib.loc = "SeuratForMayerv2/")

#You can use the following commands to install EnImpute from GitHub.
install_github("Rohit-Satyam/EnImpute", subdir="pkg")

Note: EnImpute also depends on the following two Python packages: dca (https://github.com/theislab/dca) and MAGIC (https://github.com/KrishnaswamyLab/MAGIC). Before installing EnImpute, please install the two Python packages following the corresponding readme files, and check whether they can be run from the command line.

mamba create -n enimpute python==3.8
conda activate enimpute 
~/miniconda3/envs/enimpute/bin/pip3 install dca 'keras>=2.4,<2.6' 'tensorflow>=2.0,<2.5' pyyaml==5.4.1 magic-impute

Usage

Load the library EnImpute in R console, by running

# Load reticulate first and set python path
library(reticulate)
use_python("/home/subudhak/miniconda3/envs/enimpute/bin/python3")
library("EnImpute")

Simply run the function EnImpute on your favorite datasets. Take the baron dataset as an example:

data("baron")
# Since AddImputedScore Function was depreciated and replaced with ALRA, there is no point in using it. Moreover, with old Seurat Version (2.3.4), creation of Seurat Object throws an error.
baron_imputation_result = EnImpute(baron$count.samp, dcaPath = "/home/subudhak/miniconda3/envs/enimpute/bin/dca", Seurat = FALSE)

For detailed usage, please refer to "EnImpute-manual.pdf". For more examples about real data applications, please refer to the file "down_sampling_analysis.R", which performs the down-sampling experiments as described in the paper and is present in the subdirectory "down_sampling_experiments".

Please do not hesitate to contact Dr. Xiao-Fei Zhang at [email protected] to seek any clarifications regarding any contents or operation of the archive.

enimpute's People

Contributors

rohit-satyam avatar zhangxf-ccnu 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.