$ show Cloufield/gwaslab
GWASLab is a Python library and CLI tool for comprehensive processing, quality control, harmonization, visualization, and downstream analysis of GWAS summary statistics. The core object is the `Sumstats` class, which wraps a pandas DataFrame with metadata, status codes, and methods for common operations such as basic QC (`basic_check()`), genome build inference, rsID assignment, allele harmonization, liftover, and format conversion (TSV, VCF, LDSC, PLINK, etc.). The architecture follows a modular design: a pure-calculation `algorithm` subpackage (numpy/scipy only) for effect-size conversions, fine-mapping (ABF), meta-analysis, and power calculations; a `qc` layer for pipeline orchestration with a decorator (`@with_logging`) that enforces column validation, tool availability, and logging; a `hm` layer for variant lookup and harmonization using VCF/BCF and caching (Parquet); a `viz` layer with dozens of plot types (Manhattan, QQ, regional, Miami, forest, phenogram, Sankey) using matplotlib; and an `extension` layer for integrating external tools like LDSC, PRS-CS, SuSiE, and GWAS Catalog API. The CLI (`gwaslab_cli`) exposes subcommands for all major workflows. External dependencies include `pysam`, `polars`, `pyarrow`, `h5py`, `adjustText`, and system tools (`bcftools`, `plink`, `R`). The library is actively developed with extensive test coverage (200+ test files) and bundled reference data for HapMap3, chain files, and cytoband annotations.
The LLM identified 4 files worth highlighting for reuse:
Provides pure numpy functions for converting between BETA, SE, Z, P, OR, MAF, and other effect-size statistics. Zero internal imports from gwaslab, fully self-contained, and could be reused in any project requiring statistical genetics conversions.
Implements the Approximate Bayes Factor (ABF) fine-mapping algorithm as a pure numpy function. No dependencies beyond numpy/scipy, making it extractable for any Bayesian fine-mapping pipeline.
Defines the `ChromosomeMapper` class that normalizes chromosome notations (numeric, chr-prefixed, NC accessions) across species. Self-contained, uses only built-in JSON data, and can be reused to standardize chromosome columns in any genomic dataset.
Implements a persistent Parquet-based cache for VCF variant lookups, partitioned by chromosome with delta-update support. Provides a clean API for building and querying the cache, and could be extracted as a standalone utility for any project requiring repeated VCF queries.