Metadata-Version: 2.4
Name: scallops
Version: 1.0.0
Summary: Comprehensive package for analysis of Optical Pooled Screens (OPS) for biological data
Author: Jose Sergio Hleap, Joshua Gould, Bo Li
License: Copyright 2026 Genentech, Inc.
        
        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at
        
           http://www.apache.org/licenses/LICENSE-2.0
        
        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.
        
Project-URL: Repository, https://github.com/Genentech/scallops.git
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: adjustText
Requires-Dist: anndata>=0.12.4
Requires-Dist: bioio<2
Requires-Dist: bioio-nd2
Requires-Dist: bioio-tifffile
Requires-Dist: centrosome
Requires-Dist: cp-measure>=0.1.16
Requires-Dist: dask-image
Requires-Dist: dask!=2025.12.0,!=2026.1.0,!=2026.1.1,!=2026.1.2
Requires-Dist: decorator
Requires-Dist: filelock
Requires-Dist: flox
Requires-Dist: fsspec!=2023.9.0
Requires-Dist: igraph
Requires-Dist: itk-elastix
Requires-Dist: itk
Requires-Dist: joblib
Requires-Dist: kneed
Requires-Dist: mahotas
Requires-Dist: matplotlib
Requires-Dist: natsort
Requires-Dist: numcodecs
Requires-Dist: numpy
Requires-Dist: ome-zarr<0.12.0
Requires-Dist: pandas
Requires-Dist: pint
Requires-Dist: psutil
Requires-Dist: pyarrow
Requires-Dist: pydantic
Requires-Dist: scikit-image
Requires-Dist: scikit-learn
Requires-Dist: scipy
Requires-Dist: seaborn
Requires-Dist: shapely
Requires-Dist: stardist
Requires-Dist: statsmodels
Requires-Dist: tensorflow
Requires-Dist: tifffile<=2025.5.10
Requires-Dist: xarray
Requires-Dist: zarr<3
Provides-Extra: dialout
Requires-Dist: pysam; extra == "dialout"
Provides-Extra: napari
Requires-Dist: napari; extra == "napari"
Requires-Dist: napari_ome_zarr; extra == "napari"
Provides-Extra: dask-ml
Requires-Dist: dask-ml; extra == "dask-ml"
Provides-Extra: cellpose
Requires-Dist: cellpose<4; extra == "cellpose"
Provides-Extra: ufish
Requires-Dist: ufish; extra == "ufish"
Provides-Extra: test
Requires-Dist: miniwdl; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Provides-Extra: dev
Requires-Dist: pre-commit; extra == "dev"
Provides-Extra: doc
Requires-Dist: ipython; extra == "doc"
Requires-Dist: nbsphinx; extra == "doc"
Requires-Dist: sphinx-copybutton; extra == "doc"
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx_argparse; extra == "doc"
Requires-Dist: sphinx_rtd_theme; extra == "doc"
Dynamic: license-file

<h1 align="center">
<img src="https://raw.githubusercontent.com/Genentech/scallops/62db13112dee13dc228bd2a458ada5a7a973d2bf/docs/_static/scallopsLogo.png" width="150" alt="logo">
</h1><br>

# SCALLOPS

[![PyPI version](https://badge.fury.io/py/scallops.svg)](https://badge.fury.io/py/scallops)
[![Python Versions](https://img.shields.io/pypi/pyversions/scallops.svg)](https://pypi.org/project/scallops/)
[![License](https://img.shields.io/pypi/l/scallops.svg)](https://raw.githubusercontent.com/Genentech/scallops/refs/heads/main/LICENSE)

## Description
SCALLOPS (Scalable Library for Optical Pooled Screens) is a comprehensive Python package designed to
streamline and scale the analysis of Optical Pooled Screens (OPS) for biological data. With a focus on
handling large-scale, high-throughput screening data, SCALLOPS provides tools for efficiently processing,
analyzing, and interpreting OPS data, leveraging modern distributed computing frameworks like Dask.

## Installation

### Option 1: Install from PyPI (Recommended)
For most users, the easiest way to install SCALLOPS is via pip. This will install the pre-compiled binary wheels for your operating system (Linux, Windows, or macOS).

```bash
pip install scallops

```

*Note: SCALLOPS requires Python 3.11 or newer.*

### Option 2: Install from Source (For Development)

If you wish to contribute to the codebase or need the latest unreleased changes:

1. Clone the repository and change to the scallops directory:
```bash
git clone https://github.com/Genentech/scallops.git
cd scallops

```


2. Install SCALLOPS in editable mode with dependencies:
```bash
pip install -r requirements.txt -e .

```



## Main Focus Areas:

* **High-Throughput Data Processing**: SCALLOPS is built to manage massive datasets typical of OPS
experiments, allowing users to efficiently process and analyze data across multiple scales.
* **Scalability and Performance**: The package is optimized for both local and cloud-based distributed
environments, making it ideal for scaling to large datasets without compromising performance.

### Modular Workflows:

SCALLOPS provides an end-to-end WDL workflow that can be customized, allowing users to tailor analyses to
their specific experimental needs.

## Key Features:

* **Efficient Data Handling**: SCALLOPS utilizes advanced memory management and lazy evaluation
techniques, which minimize resource usage while handling large datasets.
* **Command-Line Interface (CLI)**: Automates batch processing and simplifies integration into larger
pipelines.
* **Customizable Outputs**: The package generates versatile outputs, including data visualizations and
summary statistics, which can be integrated into downstream analyses.
* **Notebook Examples**: SCALLOPS includes practical Jupyter notebooks that walk users through typical
workflows, making it easy to get started with real-world datasets.
* **Custom Features**: Advanced users can extend SCALLOPS with their own custom functions and workflows,
ensuring the package can grow with the complexity of the data.
* **Comprehensive API**: SCALLOPS provides a rich API that exposes all the package functionalities,
allowing users to integrate it directly into their own Python scripts and workflows. This makes
SCALLOPS highly adaptable, enabling users to build fully customized data pipelines and analyses
tailored to their unique experimental needs.

## Typical Use Cases:

* **Large-Scale Screening Projects**: SCALLOPS is designed for handling the immense data loads of
genome-wide OPS projects, helping users efficiently identify and quantify biological perturbations.
* **Data-Driven Insights**: SCALLOPS facilitates the discovery of patterns and trends in OPS data,
helping users extract and interpret complex biological systems' data.

## Contributing to SCALLOPS

We welcome all forms of contributions, including bug reports, documentation improvements, and feature
enhancements.
