Installation
Pre-compiled binaries
Section titled “Pre-compiled binaries”Pre-built binaries are available from the GitHub Releases page for Linux and macOS.
curl -fsSL https://github.com/seqeralabs/RustQC/releases/latest/download/rustqc-linux-x86_64.tar.gz | tar xz --strip-components=1chmod +x ./rustqcsudo mv ./rustqc /usr/local/bin/rustqc --versionSIMD-optimized builds are also available for faster performance on modern CPUs. Replace the download URL above with one of:
- AVX2 (x86-64-v3) — recommended for most modern servers (Haswell/Zen 1+, 2013+):
rustqc-linux-x86_64-v3.tar.gz - AVX-512 (x86-64-v4) — fastest, requires Skylake-X/Zen 4+ (2017+):
rustqc-linux-x86_64-v4.tar.gz
Run rustqc --version to see which features your CPU supports and whether a faster build is available.
curl -fsSL https://github.com/seqeralabs/RustQC/releases/latest/download/rustqc-linux-aarch64.tar.gz | tar xz --strip-components=1chmod +x ./rustqcsudo mv ./rustqc /usr/local/bin/rustqc --versionAn SVE-optimized build is also available for AWS Graviton 3+, Google Axion, and NVIDIA Grace instances. Replace the download URL above with:
- SVE (neoverse-v1) — 256-bit vectors vs NEON’s 128-bit baseline:
rustqc-linux-aarch64-neoverse-v1.tar.gz
curl -fsSL https://github.com/seqeralabs/RustQC/releases/latest/download/rustqc-macos-aarch64.tar.gz | tar xz --strip-components=1chmod +x ./rustqcsudo mv ./rustqc /usr/local/bin/rustqc --versionAn M1-optimized build with better scheduling for Apple Silicon is also available. Replace the download URL above with:
- Apple M1 — optimized for M-series chips (M1/M2/M3/M4, backward compatible):
rustqc-macos-aarch64-apple-m1.tar.gz
curl -fsSL https://github.com/seqeralabs/RustQC/releases/latest/download/rustqc-macos-x86_64.tar.gz | tar xz --strip-components=1chmod +x ./rustqcsudo mv ./rustqc /usr/local/bin/rustqc --versionDocker
Section titled “Docker”Run RustQC without any local installation using Docker:
# Run all RNA-seq QC analyses in a single passdocker run -v $(pwd):/data ghcr.io/seqeralabs/rustqc:latest \ rustqc rna /data/sample.bam --gtf /data/genes.gtf -p -o /data/output/SIMD-optimized Docker images are also available for better performance on capable hardware:
# x86_64 with AVX2 (recommended for most modern x86 servers)docker run -v $(pwd):/data ghcr.io/seqeralabs/rustqc:latest-avx2 \ rustqc rna /data/sample.bam --gtf /data/genes.gtf -p -o /data/output/
# x86_64 with AVX-512 (Skylake-X, Zen 4+)docker run -v $(pwd):/data ghcr.io/seqeralabs/rustqc:latest-avx512 \ rustqc rna /data/sample.bam --gtf /data/genes.gtf -p -o /data/output/
# aarch64 with SVE (Graviton 3+, Axion, Grace)docker run -v $(pwd):/data ghcr.io/seqeralabs/rustqc:latest-sve \ rustqc rna /data/sample.bam --gtf /data/genes.gtf -p -o /data/output/Build from source
Section titled “Build from source”Building from source requires the Rust toolchain, a C++ compiler, and a few system libraries needed by rust-htslib for SAM/BAM/CRAM I/O. The C++ compiler is used both by rust-htslib and by RustQC’s preseq FFI shim (a small C++ wrapper that links against the host’s std::mt19937 and std::binomial_distribution for exact bootstrap compatibility with upstream preseq).
Install from crates.io
Section titled “Install from crates.io”If you already have the Rust toolchain and system dependencies installed, you can install directly from crates.io:
cargo install rustqcBuild from a git clone
Section titled “Build from a git clone”Select your operating system for build instructions:
# Install system dependenciesbrew install cmake zlib bzip2 xz curl openssl
# Install Rust (if not already installed)curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build RustQCgit clone https://github.com/seqeralabs/RustQC.gitcd RustQCcargo build --release
# Binary is at target/release/rustqc./target/release/rustqc --version# Install system dependenciessudo apt install cmake zlib1g-dev libbz2-dev liblzma-dev \ libcurl4-openssl-dev libssl-dev clang
# Install Rust (if not already installed)curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build RustQCgit clone https://github.com/seqeralabs/RustQC.gitcd RustQCcargo build --release./target/release/rustqc --version# Install system dependenciessudo dnf install cmake zlib-devel bzip2-devel xz-devel \ libcurl-devel openssl-devel clang
# Install Rust (if not already installed)curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build RustQCgit clone https://github.com/seqeralabs/RustQC.gitcd RustQCcargo build --release./target/release/rustqc --versionThe compiled binary is at target/release/rustqc. You can copy it to a directory on your PATH for convenient access. Release builds use link-time optimization (LTO) and symbol stripping for better performance and a smaller binary.
The system dependencies are: cmake, zlib, bz2, lzma, curl, ssl, and a C++ compiler (clang or g++).
Extra performance
Section titled “Extra performance”Pre-built SIMD-optimized binaries are available (see tabs above) that already leverage AVX2, AVX-512, or SVE. If you’re building from source and want to target your exact CPU, you can squeeze out additional performance:
RUSTFLAGS="-C target-cpu=native" cargo build --releaseFor a further 5–20% speedup on a machine you run RustQC on regularly, you can use Profile-Guided Optimization (PGO). This lets the compiler optimize hot code paths based on a real workload:
# 1. Build an instrumented binaryRUSTFLAGS="-Cprofile-generate=/tmp/pgo-data" cargo build --release
# 2. Run it on a representative BAM file./target/release/rustqc rna your_sample.bam --gtf genes.gtf -p -o /tmp/pgo-out
# 3. Merge the profile datallvm-profdata merge -o /tmp/pgo-data/merged.profdata /tmp/pgo-data
# 4. Rebuild using the profileRUSTFLAGS="-Cprofile-use=/tmp/pgo-data/merged.profdata -C target-cpu=native" \ cargo build --releaseVerify installation
Section titled “Verify installation”rustqc --versionrustqc --helpIf the binary is not on your PATH, use the full path to the compiled binary:
./target/release/rustqc --version./target/release/rustqc --help