SeqRepo

SeqRepo manages local collections of biological sequences to provide fast, stable, private, and reproducible retrieval of genome, transcript, and protein sequences for downstream analyses.


Key Features:

  • Local non-redundant repository: Constructs a local, non-redundant collection of genome, transcript, and protein sequences enabling high-performance random access with up to 1300-fold improvement for sequence slices versus network-based solutions.
  • Identifier and digest support: Stores primary database identifiers alongside multiple sequence digests to support aliasing and retrieval when conventional identifiers are unavailable.
  • Storage mechanisms: Employs compression, journaling, and non-redundancy to manage storage efficiently.
  • Programmatic interfaces: Exposes a native Python API and RESTful interfaces for local or remote programmatic access.
  • GA4GH refget integration: Provides an alternative REST interface implementing the GA4GH refget protocol.
  • sha512t24u hashing convention: Generates URL-safe identifiers using SHA-512 hashing with Base64 encoding (sha512t24u) for fast, space-efficient sequence identifiers.
  • Human sequence snapshots: Maintains regular snapshots of human sequence collections for consistent local copies.

Scientific Applications:

  • Variant validation and normalization: Supports pipelines that require rapid sequence retrieval for variant validation and representation normalization.
  • High-throughput and clinical workflows: Improves sequence-access throughput in high-throughput and clinical analyses, with reported ~50-fold gains in specific use cases versus remote access.
  • Privacy and reproducibility: Enables local sequence storage to preserve data privacy and reproducibility in genomic analyses.

Methodology:

Implemented as a Python package, SeqRepo manages local sequence collections using compression, journaling, and non-redundancy; it supports multiple digests and the sha512t24u (SHA-512 + Base64) identifier convention and resolves fully-qualified identifiers with namespaces to disambiguate accessions (e.g., GRCh37 vs. GRCh38), returning a unique match or raising an ambiguity error.

Topics

Details

License:
Apache-2.0
Programming Languages:
Python
Added:
1/18/2021
Last Updated:
2/16/2021

Operations

Publications

Hart RK, Prlić A. SeqRepo: A system for managing local collections biological sequences. Unknown Journal. 2020. doi:10.1101/2020.09.16.299495.