perturb-tools is an analysis framework for pooled CRISPR genome-editing screens. Thus far, development has focused on local (i.e., not genome-wide) tiling screens with specific phenotypic readouts though expansion of this scope is of interest.
import perturb_tools as pt
screen = pt.Screen(X)
Genome Editing Screen composed of: n_guides x n_conditions = 946 x 12
guides: 'barcode', 'barcode_id', 'experiment', 'sequence', 'target_id', 'pred_ABE_edit', 'pred_CBE_edit'
samples: 'condition', 'replicate'
samples_m: 'barcode_counts', 'unexpected_sequences'
samples_p: 'correlation'
layers: 'X_lognorm'
uns: 'run_info', 'poolq3', 'metadata', 'SampleBarcodeReadCounts', 'CommonSampleBarcodeReadCounts'
This format and organization of metadata surrounding a multidimensional experiment is inspired by AnnData, a useful solution for the analogous organization of single-cell data.
-
screen.X
(Numpy array) -
screen.samples
(pandas DataFrame) of shape:[n_samples x sample_annotation]
-
screen.guides
(pandas DataFrame) of shape:[n_guides x guide_annotation]
See the tutorial for more information.
Install the development package:
# (1) clone this repository
git clone https://github.com/pinellolab/perturb-tools.git
# (2) install the local project in editable mode
cd ./perturb-tools; pip install -e .
- See tutorial which includes:
- API tutorial
- Normalization
- Arithmetic
- Calculating the mean, standard deviation, and log-fold change between/across replicates
- Correlation calculation
- Hit discovery (under development)
- Visualization (under development)
-
Sequence prediction of targeted base-edit
-
TF motif annotation
a. Occupancy of Cas9 for CRISPRi (and how this may disrupt a TF motif)
b. Putative creation / destruction of TF motifs upon predicted base-editing outcome