pyfastx is a Python C extension library and command-line tool for efficient parsing and random access of FASTA and FASTQ files. It builds SQLite3-based indexes to enable fast sequence retrieval without excessive memory usage, supporting both plain and gzipped files. The core functionality is implemented in C using kseq.h for parsing and zran.c for gzip indexing, with a Python wrapper providing high-level classes (Fasta, Fastq, Sequence, Read) and key collections for filtering and sorting. The included CLI tool offers subcommands for indexing, statistics, splitting, format conversion, subsequence extraction, and sampling. The project includes comprehensive benchmarks comparing against tools like pysam, pyfaidx, and biopython, and is cited in peer-reviewed literature.
htsjdk is a comprehensive Java library for reading, writing, and manipulating high-throughput sequencing (HTS) data formats, including SAM, BAM, CRAM, VCF, BCF, FASTQ, FASTA, BED, and GFF3. It provides format-specific codecs, indexing (BAI, CRAI, CSI, Tabix, tribble), block-compressed I/O (BGZF with libdeflate acceleration), and a plugin-based codec registry (beta package). The library is used by major bioinformatics tools like Picard, GATK, and IGV. It includes extensive CRAM compression support (rANS, FQZComp, range coding, name tokenisation) and versioned codec implementations for CRAM 3.0/3.1 and VCF 4.0-4.3. The architecture follows a layered design: low-level I/O streams, format-specific readers/writers, and a higher-level plugin framework for content-type decoupling. While the codebase is actively maintained and well-tested, it contains some deprecated APIs, experimental beta code, and a few unimplemented code paths, reflecting its long evolution and breadth of format support.