Perturbio
┌─────────────────────────────────────────────────────────────────┐
│ │
│ ██████╗ ███████╗██████╗ ████████╗██╗ ██╗██████╗ ██████╗ ██╗ │
│ ██╔══██╗██╔════╝██╔══██╗╚══██╔══╝██║ ██║██╔══██╗██╔══██╗██║ │
│ ██████╔╝█████╗ ██████╔╝ ██║ ██║ ██║██████╔╝██████╔╝██║ │
│ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ ██║ ██║██╔══██╗██╔══██╗██║ │
│ ██║ ███████╗██║ ██║ ██║ ╚██████╔╝██║ ██║██████╔╝██║ │
│ ╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ │
│ │
│ Crop-Seq Analysis Made Simple │
│ │
└─────────────────────────────────────────────────────────────────┘
Perturbio is a comprehensive Python package for end-to-end analysis of Crop-Seq experiments (CRISPR pooled screens + single-cell RNA sequencing). From raw data to biological insights in under 5 minutes.
Features
- Guide Extraction: Automatically identify CRISPR guide RNAs in single cells
- Differential Expression: Discover genes affected by perturbations
- Beautiful Visualizations: Publication-ready plots with minimal code
- Scanpy Integration: Works seamlessly with the scanpy ecosystem
- Simple CLI: One command to run complete analysis
- Fast: Analyze thousands of cells in minutes
Installation
Install from source:
git clone https://github.com/Siavashghaffari/Perturbio.git
cd Perturbio
pip install -e .
Once released on PyPI:
pip install perturbio
Quick Start
Command Line
# Run complete analysis
perturbio analyze cropseq_data.h5ad --guides guides.csv
# Results saved to perturbio_results_YYYYMMDD_HHMMSS/
Python API
from perturbio import CropSeqAnalyzer
# One-liner magic
analyzer = CropSeqAnalyzer("cropseq_data.h5ad")
results = analyzer.run()
# Access results
print(results.top_hits("BRCA1_guide1", n=20))
results.plot_volcano("MYC_guide1")
Scanpy Integration
import scanpy as sc
import perturbio as pt
# Standard scanpy workflow
adata = sc.read_h5ad("cropseq_data.h5ad")
sc.pp.normalize_total(adata)
sc.pp.log1p(adata)
# Extract guides
pt.guides.extract(adata, guide_file="guides.csv")
# Differential expression
pt.tl.differential_expression(adata, groupby='perturbation', control='non-targeting')
# Visualize
pt.pl.volcano(adata, perturbation='BRCA1_guide1')
Guide Library Format
Create a CSV file with your guide library:
guide_id,target_gene,guide_sequence
BRCA1_guide1,BRCA1,GCACTCAGGAAACAGCTATG
BRCA1_guide2,BRCA1,CTGAAGACTGCTCAGTGTAG
MYC_guide1,MYC,GTACTTGGTGAGGCCAGCGC
non-targeting_1,control,GTAGCGAACGTGTCCGGCGT
Documentation
- Installation
- Quick Start Tutorial
- Complete Workflow
- Scanpy Integration Guide
- CLI Examples
- All Examples
Requirements
- Python 3.9+
- AnnData/Scanpy for single-cell analysis
- Works on macOS, Linux, and Windows
Authors
This work was developed by Siavash Ghaffari. For any questions, feedback, or additional information, please feel free to reach out. Your input is highly valued and will help improve and refine this pipeline further.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file perturbio-0.1.0.tar.gz.
File metadata
- Download URL: perturbio-0.1.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b92f2481d47937baa4c26147e9dc024faf52be059e1991e3be951cf266abb16a
|
|
| MD5 |
260bac83ec3c974364a5f9966cd81555
|
|
| BLAKE2b-256 |
b29f0271ec4418b0f70414301630dce37e5e040570c979c06c8cefd72e8b07e1
|
File details
Details for the file perturbio-0.1.0-py3-none-any.whl.
File metadata
- Download URL: perturbio-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55eb63c4e70c30e2a0461244f5656f329dd9f328bc6bab92fa659677c3a69857
|
|
| MD5 |
7520aa070536141aa6d822b1eb52aae7
|
|
| BLAKE2b-256 |
8610cb3ecd8f358521276c07ac92bea40511c62b1a900085fc67761f680817ba
|