🌶️ sracha 🌶️
Fast SRA downloader and FASTQ converter, written in pure Rust.
Features
- Parallel downloads -- chunked HTTP Range requests with multiple connections
- Native VDB parsing -- pure Rust, zero C dependencies
- Integrated pipeline -- download, convert, and compress in one command
- Project-level accessions -- pass a BioProject (PRJNA) or study (SRP) to download all runs
- Accession lists -- batch download from a file with
--accession-list - Parallel gzip or zstd -- pigz-style block compression via rayon
- FASTA output -- drop quality scores with
--fasta - SRA and SRA-lite -- full quality or simplified quality scores
- Split modes -- split-3, split-files, split-spot, interleaved
- Resumable downloads -- automatically resumes interrupted transfers
- File validation -- verify SRA file integrity with
sracha validate
How it works
sracha get runs the full pipeline in one command:
- Resolve -- looks up the accession via direct S3 URL (with SDL API fallback)
- Download -- fetches the
.srafile with parallel chunked HTTP Range requests - Parse -- reads the KAR archive and decodes VDB columns (READ, QUALITY, READ_LEN, NAME)
- Output -- formats FASTQ (or FASTA) records and compresses with parallel gzip/zstd
Quick start
# Download, convert, and compress in one shot
sracha get SRR28588231
# Download all runs from a BioProject
sracha get PRJNA675068
# Batch download from an accession list
sracha get --accession-list SRR_Acc_List.txt
# Just download
sracha fetch SRR28588231
# Convert a local .sra file
sracha fastq SRR28588231.sra
# Show accession info
sracha info SRR28588231
# Validate a downloaded file
sracha validate SRR28588231.sra
See the Getting Started guide for more examples, or the CLI Reference for all options.
Installation
From binary releases
Download pre-built binaries from the releases page.
From source
Requires Rust 1.92+.
cargo install --git https://github.com/rnabioco/sracha-rs sracha
With Bioconda
pixi add --channel bioconda sracha