Metadata-Version: 2.4
Name: wasp2
Version: 1.4.1
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
Requires-Dist: numpy>=1.21.0
Requires-Dist: pandas>=1.5.0,<3.0.0
Requires-Dist: polars>=0.19.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: pysam>=0.21.0
Requires-Dist: pybedtools>=0.9.0
Requires-Dist: anndata>=0.8.0,<0.12.0
Requires-Dist: scanpy>=1.9.0
Requires-Dist: typer>=0.12.0
Requires-Dist: rich>=13.0.0
Requires-Dist: pytest-benchmark>=4.0 ; extra == 'benchmark'
Requires-Dist: memory-profiler>=0.61 ; extra == 'benchmark'
Requires-Dist: matplotlib>=3.7.0 ; extra == 'benchmark'
Requires-Dist: seaborn>=0.12.0 ; extra == 'benchmark'
Requires-Dist: cyvcf2>=0.31.0 ; extra == 'cyvcf2'
Requires-Dist: pytest>=7.0 ; extra == 'dev'
Requires-Dist: pytest-cov>=4.0 ; extra == 'dev'
Requires-Dist: pytest-benchmark>=4.0 ; extra == 'dev'
Requires-Dist: memory-profiler>=0.61 ; extra == 'dev'
Requires-Dist: mypy>=1.0 ; extra == 'dev'
Requires-Dist: basedpyright>=1.18.0 ; extra == 'dev'
Requires-Dist: ruff>=0.9.0 ; extra == 'dev'
Requires-Dist: pre-commit>=3.0 ; extra == 'dev'
Requires-Dist: build>=0.10 ; extra == 'dev'
Requires-Dist: twine>=4.0 ; extra == 'dev'
Requires-Dist: maturin>=1.4 ; extra == 'dev'
Requires-Dist: bandit[toml]>=1.8.0 ; extra == 'dev'
Requires-Dist: pip-audit>=2.7.0 ; extra == 'dev'
Requires-Dist: sphinx>=7.0 ; extra == 'docs'
Requires-Dist: pydata-sphinx-theme>=0.15 ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints>=1.25 ; extra == 'docs'
Requires-Dist: nbsphinx>=0.9 ; extra == 'docs'
Requires-Dist: myst-parser>=2.0 ; extra == 'docs'
Requires-Dist: sphinx-copybutton>=0.5 ; extra == 'docs'
Requires-Dist: sphinx-design>=0.5 ; extra == 'docs'
Requires-Dist: ipython>=8.0 ; extra == 'docs'
Requires-Dist: pgenlib>=0.90 ; extra == 'plink'
Requires-Dist: maturin>=1.0 ; extra == 'rust'
Provides-Extra: benchmark
Provides-Extra: cyvcf2
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: plink
Provides-Extra: rust
License-File: LICENSE
Summary: Allele-specific analysis of next-generation sequencing data with high-performance multi-format variant support (VCF/cyvcf2/PGEN)
Keywords: bioinformatics,genomics,allele-specific,ngs,sequencing,wasp,allelic-imbalance,plink2,pgen,vcf,cyvcf2,high-performance
Author: Aaron Ho, McVicker Lab
Author-email: Jeff Jaureguy <jeffpjaureguy@gmail.com>
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://mcvickerlab.github.io/WASP2/
Project-URL: Homepage, https://github.com/mcvickerlab/WASP2
Project-URL: Issues, https://github.com/mcvickerlab/WASP2/issues
Project-URL: Repository, https://github.com/mcvickerlab/WASP2

<p align="center">
  <img src="https://raw.githubusercontent.com/mcvickerlab/WASP2/master/docs/source/_static/banner.svg" alt="WASP2 - Allele-Specific Analysis Pipeline" width="100%">
</p>

<p align="center">
  <a href="https://pypi.org/project/wasp2/">
    <img src="https://img.shields.io/pypi/v/wasp2" alt="PyPI">
  </a>
  <a href="https://bioconda.github.io/recipes/wasp2/README.html">
    <img src="https://img.shields.io/conda/vn/bioconda/wasp2" alt="Bioconda">
  </a>
  <a href="https://github.com/mcvickerlab/WASP2/actions/workflows/ci.yml">
    <img src="https://github.com/mcvickerlab/WASP2/actions/workflows/ci.yml/badge.svg" alt="CI">
  </a>
  <a href="https://mcvickerlab.github.io/WASP2/">
    <img src="https://img.shields.io/badge/docs-GitHub%20Pages-blue" alt="Documentation">
  </a>
</p>

## Installation

### Bioconda

```bash
mamba install -c conda-forge -c bioconda wasp2
```

### PyPI

```bash
pip install wasp2
```

The PyPI package does not install external tools such as `samtools`,
`bcftools`, or `bedtools`; install those separately.

### Docker

```bash
docker pull ghcr.io/mcvickerlab/wasp2:1.4.1
docker run --rm ghcr.io/mcvickerlab/wasp2:1.4.1 wasp2-count --help
```

### Singularity/Apptainer

```bash
singularity pull wasp2.sif docker://ghcr.io/mcvickerlab/wasp2:1.4.1
singularity exec wasp2.sif wasp2-count --help
```

## CLI Tools

WASP2 installs three command-line entry points:

- `wasp2-map`
- `wasp2-count`
- `wasp2-analyze`

## Quick Start

### 1. Correct mapping bias

```bash
wasp2-map make-reads input.bam variants.vcf.gz -s sample1 -o remap_dir

# Realign remap_dir/*_swapped_alleles_r1.fq and r2.fq with the same aligner
# and settings used for the original BAM, then:

wasp2-map filter-remapped remapped.bam \
  -j remap_dir/input_wasp_data_files.json \
  -o filtered.bam
```

### 2. Count alleles

```bash
wasp2-count count-variants filtered.bam variants.vcf.gz -s sample1 -o counts.tsv
```

### 3. Test for imbalance

```bash
wasp2-analyze find-imbalance counts.tsv -o ai_results.tsv
```

## Single-Cell Example

```bash
wasp2-count count-variants-sc \
  cellranger.bam \
  variants.vcf.gz \
  barcodes.tsv \
  --samples sample1 \
  --feature genes.gtf \
  --out_file allele_counts.h5ad

wasp2-analyze find-imbalance-sc \
  allele_counts.h5ad \
  barcode_groups.tsv \
  --sample sample1 \
  -o ai_results.tsv
```

See the [documentation](https://mcvickerlab.github.io/WASP2/) for complete
usage, tutorials, and API details.

