Skip to content

Commit

Permalink
update README.md to cover new features
Browse files Browse the repository at this point in the history
  • Loading branch information
abearab committed Apr 6, 2024
1 parent e055ea3 commit 8c028ac
Showing 1 changed file with 34 additions and 15 deletions.
49 changes: 34 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ The complete docs are available at [screenpro2.rtfd.io](https://screenpro2.readt
- [Citation](#citation)

## Introduction
This package is conceptually similar to the [**ScreenProcessing**](https://github.com/mhorlbeck/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:
Functional genomics field is evolving rapidly and many more CRISPR screen platforms are now developed. Therefore,
it's important to have a standardized workflow to analyze the data from these screens. ScreenPro2 is provided to
enable researchers to easily process and analyze data from CRISPR screens. Currently, you need to have a basic background in programming (especially Python) to use ScreenPro2.

ScreenPro2 is conceptually similar to the [**ScreenProcessing**](https://github.com/mhorlbeck/ScreenProcessing) pipeline but **ScreenPro2** is designed to be more modular, flexible, and extensible. Common CRISPR screen methods that we have implemented here are illustrated in a recent review paper:

> From: [A new era in functional genomics screens](https://www.nature.com/articles/s41576-021-00409-w)
Expand All @@ -43,10 +44,24 @@ 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.
Data analysis for CRISPR screens with NGS readouts can be broken down into three main steps:

- [Step 1: FASTQ to counts](#step-1-fastq-to-counts)
- [Step 2: Phenotype calculation](#step-2-phenotype-calculation)
- [Step 3: Explore results and QC reports](#step-3-explore-results-and-qc-reports)

### Step 1: FASTQ to counts

Since version 0.2.7, ScreenPro2 has a built-in method to process FASTQ files and generate counts. This method is implemented in the `ngs` module and relvent submodules. A minor novelty here has enabled processing single, dual, or multiple sgRNA CRISPR screens. Also, this approach can retain recombination events which can occur in dual or higher
order sgRNA CRISPR screens.

There is no example code for this step yet, but a command line interface (CLI) will be available soon.

### Load Data
### Step 2: Phenotype calculation

Once you have the counts, you can use ScreenPro2 `phenoScore` and `phenoStats` modules to calculate the phenotype scores and statistics between screen arms.

#### Load Data
First, load your data into an `AnnData` object (see [anndata](https://anndata.readthedocs.io/en/latest/index.html) for
more information).

Expand Down Expand Up @@ -75,11 +90,11 @@ screen = scp.ScreenPro(adata)
```
<img width="600" alt="image" src="https://github.com/abearab/ScreenPro2/assets/53412130/d1c8c3ad-3668-4390-8b1d-bf72b591a927">

### Perform Screen Processing Analysis
#### 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
##### 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.
Expand All @@ -101,7 +116,7 @@ ___
For example, in a Decitabine CRISPRi drug screen (see Figure 1B-C in [this bioRxiv paper](https://www.biorxiv.org/content/10.1101/2022.12.14.518457v2.full)), each phenotype score represents a comparison between different arms of the screen and `rho` scores shows the main drug phenotype as illustrated here:
<img width="800" alt="image" src="https://github.com/abearab/ScreenPro2/assets/53412130/b84b3e1f-e049-4da6-b63d-d4c72bc97cda">

#### Flow cytometry based screen workflow: calculate phenotype score to compare high and low bins
##### 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.
Expand All @@ -120,17 +135,21 @@ 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
### CRISPRa/i-single-sgRNA-screens
[Horlbeck et al., _eLife_ (2016)](http://dx.doi.org/10.7554/eLife.19760)

Horlbeck et al. developed a CRISPR interference (CRISPRi) and CRISPR activation (CRISPRa) screening platform that uses a single sgRNA within a single plasmid and then there are up to 10 sgRNAs per gene. The multiple sgRNAs per gene can be used to perfrom statistical comparisons in guide-level or gene-level between screen arms. [ScreenProcessing](https://github.com/mhorlbeck/ScreenProcessing) has been developed to process data from this type of screen. We reimplemented the same workflow in ScreenPro2 and it has all the necessary tools to process data from this type of screen. An automated workflow / pipeline will be available soon.

### CRISPRa/i-dual-sgRNA-screens
[Replogle et al., _eLife_ (2022)](https://elifesciences.org/articles/81856)

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](https://github.com/josephreplogle/CRISPRi-dual-sgRNA-screens), 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.
Replogle et al. developed a CRISPR interference (CRISPRi) and CRISPR activation (CRISPRa) screening platform that uses two sgRNAs per gene within a single plasmid, and it has been used to perform genome-scale CRISPRi screens. ScreenPro2 has all the necessary tools to process data from this type of screen. An automated workflow / pipeline will be available soon.

## License
ScreenPro2 is licensed under the terms of the MIT license (see [LICENSE](LICENSE) for more information) and developed
by Abolfazl (Abe) Arab ([@abearab](https://github.com/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.

Coming soon...

0 comments on commit 8c028ac

Please sign in to comment.