All Projects → theislab → Scgen

theislab / Scgen

Licence: gpl-3.0
Single cell perturbation prediction

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Scgen

Taxonkit
A Practical and Efficient NCBI Taxonomy Toolkit
Stars: ✭ 109 (-10.66%)
Mutual labels:  bioinformatics
Fqtools
An efficient FASTQ manipulation suite
Stars: ✭ 114 (-6.56%)
Mutual labels:  bioinformatics
Hicexplorer
HiCExplorer is a powerful and easy to use set of tools to process, normalize and visualize Hi-C data.
Stars: ✭ 116 (-4.92%)
Mutual labels:  bioinformatics
Cgranges
A C/C++ library for fast interval overlap queries (with a "bedtools coverage" example)
Stars: ✭ 111 (-9.02%)
Mutual labels:  bioinformatics
Ugene
UGENE is free open-source cross-platform bioinformatics software
Stars: ✭ 112 (-8.2%)
Mutual labels:  bioinformatics
Apbs Pdb2pqr
APBS - software for biomolecular electrostatics and solvation
Stars: ✭ 114 (-6.56%)
Mutual labels:  bioinformatics
Paysage
Unsupervised learning and generative models in python/pytorch.
Stars: ✭ 109 (-10.66%)
Mutual labels:  generative-model
Net2net
Network-to-Network Translation with Conditional Invertible Neural Networks
Stars: ✭ 120 (-1.64%)
Mutual labels:  generative-model
Bio4j
Bio4j abstract model and general entry point to the project
Stars: ✭ 113 (-7.38%)
Mutual labels:  bioinformatics
Dna2vec
dna2vec: Consistent vector representations of variable-length k-mers
Stars: ✭ 117 (-4.1%)
Mutual labels:  bioinformatics
Pyani
Python module for average nucleotide identity analyses
Stars: ✭ 111 (-9.02%)
Mutual labels:  bioinformatics
Bioconvert
Bioconvert is a collaborative project to facilitate the interconversion of life science data from one format to another.
Stars: ✭ 112 (-8.2%)
Mutual labels:  bioinformatics
Ngless
NGLess: NGS with less work
Stars: ✭ 115 (-5.74%)
Mutual labels:  bioinformatics
Pegasus
Pegasus Workflow Management System - Automate, recover, and debug scientific computations.
Stars: ✭ 110 (-9.84%)
Mutual labels:  bioinformatics
Torch Gqn
PyTorch Implementation of Generative Query Network
Stars: ✭ 118 (-3.28%)
Mutual labels:  generative-model
Sortmerna
SortMeRNA: next-generation sequence filtering and alignment tool
Stars: ✭ 108 (-11.48%)
Mutual labels:  bioinformatics
Cooler
A cool place to store your Hi-C
Stars: ✭ 112 (-8.2%)
Mutual labels:  bioinformatics
Circlator
A tool to circularize genome assemblies
Stars: ✭ 121 (-0.82%)
Mutual labels:  bioinformatics
Blacklist
Application for making ENCODE Blacklists
Stars: ✭ 119 (-2.46%)
Mutual labels:  bioinformatics
Generative Evaluation Prdc
Code base for the precision, recall, density, and coverage metrics for generative models. ICML 2020.
Stars: ✭ 117 (-4.1%)
Mutual labels:  generative-model

scGen PyPI version Build Status Documentation Status Downloads

Introduction

A tensorflow implementation of scGen. scGen is a generative model to predict single-cell perturbation response across cell types, studies and species (Nature Methods, 2019) .

Getting Started

*What you can do with scGen:

  • Train on a dataset wih multiple cell types and conditions and predict the the perturbation effect on the cell type which you only have in one condition. This scenario can be extended to multiple species where you want to predict the effect of a specific species using another or all the species.

  • Train on a dataset where you have two conditions (e.g. control and perturbed) and predict on second dataset with similar genes.

  • Remove batch effect on labeled data. In this scenario you need to provide cell_type and batch labels to the method. Note that batch_removal does not require all cell types to be present in all datasets (batches). If you have dataset specific cell type it will preserved as before.

  • We assume there exist two conditions in you dataset (e.g. control and perturbed). You can train the model and with your data and predict the perturbation for the cell type/species of interest.

  • We recommend to use normalized data for the training. A simple example for normalization pipeline using scanpy:

import scanpy as sc
adata = sc.read(data)
sc.pp.normalize_per_cell(adata)
sc.pp.log1p(adata)
  • We further recommend to use highly variable genes (HVG). For the most examples in the paper we used top ~7000 HVG. However, this is optional and highly depend on your application and computational power.

Installation

Installation with pip

To install the latest version from PyPI, simply use the following bash script:

pip install scgen

or install the development version via pip:

pip install git+https://github.com/theislab/scgen.git

or you can first install flit and clone this repository:

pip install flit
git clone https://github.com/theislab/scGen
cd scgen
flit install

On Windows machines you may need to download a C++ compiler if you wish to build from source yourself.

Notes for installing:

  • If you plan to use GPU, please consider installing tensorflow-GPU after installing scgen.
  • We recommend using tensorflow < 2 and compatible Keras versions and python 3.8, you might have to change a few thing to use tf 2.0, for more info see here. *If you get error such as No matching distribution found for tensorflow while installing, please check your python version and install right tf and keras version for that (we recommend to use python <=3.7)

Examples

  • For perturbation prediction check this example for interferon (IFN)-β stimulation from Kang et al..

  • For batch-removal check our example on integrating four pancreas datasets.

Reproducing paper results

In order to reproduce paper results visit here.

References

Lotfollahi, Mohammad and Wolf, F. Alexander and Theis, Fabian J. "scGen predicts single-cell perturbation responses." Nature Methods, 2019. pdf

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].