Skip to main content

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

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

perturbio-0.1.0.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

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

perturbio-0.1.0-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

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

Hashes for perturbio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b92f2481d47937baa4c26147e9dc024faf52be059e1991e3be951cf266abb16a
MD5 260bac83ec3c974364a5f9966cd81555
BLAKE2b-256 b29f0271ec4418b0f70414301630dce37e5e040570c979c06c8cefd72e8b07e1

See more details on using hashes here.

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

Hashes for perturbio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55eb63c4e70c30e2a0461244f5656f329dd9f328bc6bab92fa659677c3a69857
MD5 7520aa070536141aa6d822b1eb52aae7
BLAKE2b-256 8610cb3ecd8f358521276c07ac92bea40511c62b1a900085fc67761f680817ba

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page