/OpticalPooledScreens

Code and examples for optical pooled screens (updated protocol).

Primary LanguagePythonMIT LicenseMIT

Optical Pooled Screens

Analysis resources for the publication Pooled genetic perturbation screens with image-based phenotypes. This is an updated and expanded version of the repository for the original 2019 publication Optical pooled screens in human cells, available here.

Installation (OSX)

Download the repository (e.g., on Github use the green "Clone or download" button, then "Download ZIP").

In Terminal, go to the OpticalPooledScreens project directory and create a Python 3 virtual environment using a command like:

python3 -m venv venv

If the python3 command isn't available, you might need to specify the full path. E.g., if Miniconda is installed in the home directory:

~/miniconda3/bin/python -m venv venv

This creates a virtual environment called venv for project-specific resources. The commands in install.sh add required packages to the virtual environment:

sh install.sh

Within this script, the ops package is installed with pip install -e, so the source code in the ops/ directory can be modified in place.

Once install is complete, activate the virtual environment from the project directory:

source venv/bin/activate

Additionally, if using the CellPose segmentation method, this must be installed in the virtual environment:

pip install cellpose[gui]

Running an example pipeline

To run the analysis pipeline with images from the original publication, first download and install the IBM Aspera Command Line Interface (includes ascp) for interaction with the Cell-IDR databse. Then, set up an example directory:

python -m ops.paper.cell_idr setup_example example --ascp=<path/to/ascp/executable>

Note that if ascp is in your path, you can use --ascp==ascp.

Run the pipeline on the example data using snakemake (after activating the virtual environment):

cd example
snakemake --cores all --configfile=config.yaml

Additional example data

An example tile of 12-cycle SBS data is available in the original OpticalPooledScreens repository here.

Additionally, all screening data presented in the original publication can be easily accessed from the public Cell-IDR database (study idr0071) using ascp similar to above for the example pipeline:

python -m ops.paper.cell_idr get_cell_idr \
<destination> \
--experiment=<experiment> \
--well=<well> \
--tile=<tile> \
--ascp=<path/to/ascp/executable>

The following experiments are available:

Cell-IDR experiment Dataset
A static p65-mNeonGreen screen in HeLa cells
B static p65 antibody screen in HeLa cells
C static p65 antibody screen in A549 cells
D static p65 antibody screen in HCT-116 cells
E Frameshift reporter screen in HeLa cells
F Detection of combinatorial perturbations in HeLa cells

Both well and tile can be set to all to download the full dataset. Figures 3 & 4 in the Nature Protocols manuscript were made using data from experiment C; functions for reproducing these figures are available here.