Skip to main content

Analyze pooled CRISPR screens

Project description

website image Documentation Status Downloads Downloads

ScreenPro2

The complete docs are available at screenpro2.rtfd.io.

Table of Contents

Introduction

This package is conceptually similar to the ScreenProcessing pipeline but ScreenPro2 is designed to be more modular, flexible, and extensible as the field of Functional Genomics evolves and newer CRISPR screen platforms are developed. Common CRISPR screen methods that we have implemented here are illustrated in a recent review paper:

From: A new era in functional genomics screens

Fig. 1: Common types of CRISPR screening modalities indicating advances in CRISPR methods.

image

Installation

ScreenPro2 is available on PyPI and can be installed with pip:

pip install ScreenPro2

For the latest version (development version) install from GitHub:

pip install git+https://github.com/ArcInstitute/ScreenPro2.git

Usage

Note that ScreenPro2 starts with a counts matrix of oligo counts (samples x oligos) so you will need to process your raw sequencing data into a counts matrix before using ScreenPro2.

Load Data

First, load your data into an AnnData object (see anndata for more information).

The AnnData object should have the following structure:

  • adata.X should be a pandas dataframe of counts (samples x oligos)
  • adata.obs should be a pandas dataframe of sample metadata including "condition" and "replicate" columns
  • adata.var should be a pandas dataframe of oligo metadata including "target" and "targetType" columns
    • "target" column should be the gene name or other identifier for the reference oligo
    • "targetType" column should be the type of reference oligo. Currently, negative control oligos should have "targetType" == "negCtrl"

Then you need create a ScreenPro object. Here is an example code making a ScreenPro object from an AnnData object:

import pandas as pd
import anndata as ad
import screenpro as scp

adata = ad.AnnData(
    X   = counts_df, # pandas dataframe of counts (samples x oligos)
    obs = meta_df,   # pandas dataframe of sample metadata including "condition" and "replicate" columns
    var = target_df  # pandas dataframe of oligo metadata including "target" and "targetType" columns
)

screen = scp.ScreenPro(adata)
image

Perform Screen Processing Analysis

Once the ScreenPro object is created, you can use several available workflows to calculate the enrichment of each oligo between screen arms.

Drug Screen Workflow: calculate gamma, rho, and tau scores

.calculateDrugScreen method can be used to calculate the enrichment of each gene between screen arms for a drug screen experiment. This method calculates gamma, rho, and tau scores for each gene and adds them to the .phenotypes attribute of the ScreenPro object.

Here is an example for running the workflow on a CRISPRi-dual-sgRNA-screens dataset:

# Run the ScreenPro2 workflow for CRISPRi-dual-sgRNA-screens
screen.calculateDrugScreen(
  t0='T0',
  untreated='DMSO',  # replace with the label for untreated condition
  treated='Drug',    # replace with the label for treated condition
  db_untreated=1,    # replace with doubling rate of untreated condition
  db_treated=1,      # replace with doubling rate of treated condition
  score_level='compare_reps'
)

For example, in a Decitabine CRISPRi drug screen (see Figure 1B-C in this bioRxiv paper), each phenotype score represents a comparison between different arms of the screen and rho scores shows the main drug phenotype as illustrated here: image

Flow cytometry based screen workflow: calculate phenotype score to compare high and low bins

.calculateFlowBasedScreen method can be used to calculate the enrichment of each target between high bin vs. low bin of a flow cytometry-based screen experiment. This method calculates PhenoScore for each target and adds them to the .phenotypes attribute of the ScreenPro object.

# Run the ScreenPro2 workflow for CRISPRi-dual-sgRNA-screens
screen.calculateFlowBasedScreen(
  low_bin='low_bin', high_bin='high_bin',
  score_level='compare_reps'
)

Supported CRISPR Screen Platforms

One of the main goals of ScreenPro2 is to make it easy to process data from commonly used CRISPR screen platforms. Also, it is designed to be modular to enable easy extension to custom CRISPR screen platforms or other commonly used platforms in addition to the ones currently implemented.


Currently, ScreenPro2 has easy-to-use workflows for the following CRISPR screen platforms:

CRISPRi-dual-sgRNA-screens

Replogle et al., eLife (2022)

Replogle et al. developed a CRISPRi screening platform that uses two sgRNAs per gene within a single plasmid, and it has been used to perform genome-scale CRISPRi screens. If you follow the codes in the provided GitHub repository, you will end up with oligo counts and once you make ScreenPro object, you can use the ScreenPro2 workflow for this platform to calculate the enrichment of each gene between screen arms.

License

ScreenPro2 is licensed under the terms of the MIT license (see LICENSE for more information) and developed by Abolfazl (Abe) Arab (@abearab), a Research Associate in the Gilbert lab at UCSF and Arc Institute.

Citation

If you use ScreenPro2 in your research, please cite the following paper.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ScreenPro2-0.2.8-py2.py3-none-any.whl (18.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ScreenPro2-0.2.8-py2.py3-none-any.whl.

File metadata

  • Download URL: ScreenPro2-0.2.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for ScreenPro2-0.2.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8734ecf6bc4877a62274488987aa3cdf6a2c99d77422771981e6d5a80f82dedd
MD5 ff5514796bae0f87e3bacc2fd99dc44d
BLAKE2b-256 64105fd6a74f690b67d73d2f0adcb0017c7892cc5c83d022522ae67bd0d7dbcd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page