HyperEx ๐Ÿ”ฌ๐Ÿงฌ

July 23, 2026 ยท View on GitHub

CI Status Crates.io License Code Coverage

HyperEx Logo

HyperEx (Hypervariable region Extractor) is a tool for precise extraction of 16S rRNA hypervariable regions using primer-based approaches. Built in Rust for a fast, dependency-light, single-binary alternative to running a full amplicon pipeline just to trim primers.

Project status: maintenance mode. HyperEx isn't under active feature development. Bug reports and fixes are welcome (PRs included), but no new features are planned. If it does what you need, great โ€” if you need a more actively developed toolkit, consider cutadapt, QIIME2, or mothur.

Features โœจ

  • ๐Ÿงฌ Built-in universal 16S primer sequences for common hypervariable regions (v1v2, v3v4, v4, etc.)
  • ๐Ÿ” Supports IUPAC ambiguity codes in primers, matched via approximate (Myers) matching
  • ๐ŸŽฏ Configurable mismatch tolerance
  • ๐Ÿ“ Handles compressed inputs (gzip, xz, bzip2)
  • ๐Ÿ“Š Generates both FASTA and GFF3 outputs
  • ๐Ÿ”ก Case-insensitive matching, so soft-masked (lowercase) assemblies work as expected

Installation ๐Ÿ“ฆ

Quick Install (via Cargo)

cargo install hyperex

Prebuilt Binaries

Download from our Releases Page

Download from Source

git clone https://github.com/Ebedthan/hyperex.git
cd hyperex
cargo install --path .

Usage ๐Ÿš€

Basic Extraction

hyperex input.fasta

Extract Specific Regions

hyperex --region v3v4 --region v4v5 input.fasta

Custom Primers

hyperex -f CCTACGGGNGGCWGCAG -r GGACTACHVGGGTWTCTAAT input.fasta

With Mismatches

hyperex --region v1v2 --mismatch 2 input.fasta

Advanced Options โš™๏ธ

OptionDescription
-f, --forwardForward primer sequence (IUPAC supported); requires -r
-r, --reverseReverse primer sequence (IUPAC supported); requires -f
--regionPredefined region (v1v2, v3v4, etc.) or primer file
-m, --mismatchAllowed mismatches (default: 0)
-p, --prefixOutput file prefix (default: hyperex_out)
--forceOverwrite existing files
-q, --quietReduce verbosity

Primer File Format ๐Ÿ“

Create a CSV file with primer pairs:

FORWARD_1,REVERSE_1
FORWARD_2,REVERSE_2
...

Examples ๐Ÿงช

Multiple regions from compressed input:

xzcat big_file.fa.xz | hyperex --region v1v2 --region v3v4 -p results

Custom primers with 1 mismatch:

hyperex -f ATCG -r GGCC -m 1 input.fasta

Requirements โœ…

  • Rust 1.60+ (for source builds)
  • Compression libraries (optional for compressed inputs):
  • libz (gzip)
  • liblzma (xz)
  • libbz2 (bzip2)

Support ๐Ÿ†˜

HyperEx is in maintenance mode (see status note above): bug reports and fixes are still welcome, but please don't expect new features. Found an issue? File it on our Issue Tracker.