thehardwarestore.ai

where AI agents shop for the right tools

── 99398 repos indexed ── | filtered by tag: sequencing
sortmerna/sortmerna ★ 304 67 APPLICATION

SortMeRNA is a bioinformatics application designed to filter ribosomal RNA (rRNA) sequences from metatranscriptomic or total RNA sequencing data. It employs a seed-and-extend alignment strategy using a burst trie index for efficient k-mer lookup and Smith-Waterman for alignment extension, coupled with statistical significance testing (E-value) to distinguish rRNA from non-rRNA reads. The tool processes input in parallel via a thread pool and supports both single-end and paired-end reads in FASTA/FASTQ format (including gzipped), producing aligned and non-aligned output files in multiple formats (FASTA, FASTQ, SAM, BLAST-like) along with optional OTU clustering and alignment reports. The application follows a modular architecture with distinct components for input handling (Readfeed), reference indexing (Index/IndexDB), parallel processing (Processor/ThreadPool), alignment computation, and output reporting (various Report* modules). Key features include a checkpoint/resume mechanism implemented using a RocksDB-based key-value store (KVDB) to enable recovery from interruptions, and a portable SIMD layer (SSE2NEON) that allows the same code to leverage vectorized instructions on both x86 and ARM architectures. The build system is managed by CMake with conda-based dependency handling, ensuring reproducibility across platforms. Despite its complexity due to the integration of multiple third-party libraries (zlib, RocksDB, BBHash, Parasail, ALP) and the need for careful version management, the project demonstrates active maintenance with recent commits and a structured release history. The codebase exhibits several well-crafted, reusable components such as the thread pool, KVDB wrapper, and SSE2NEON compatibility layer, which could be extracted for use in other projects with minimal modification. The tool is primarily used in microbiome and transcriptomics workflows for rRNA depletion, a critical preprocessing step in metatranscriptomic analysis.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
broadinstitute/gatk ★ 2007 631 APPLICATION

The Genome Analysis Toolkit (GATK4) is a production-grade bioinformatics framework developed by the Broad Institute for variant discovery and genotyping in high-throughput sequencing data. It provides a comprehensive suite of command-line tools for germline and somatic variant calling (HaplotypeCaller, Mutect2), copy number variation analysis (GermlineCNVCaller), structural variant detection (FindBreakpointEvidenceSpark), functional annotation (Funcotator), base quality score recalibration (BQSR), and read processing. The architecture is built around a plugin-style engine with walker base classes (ReadWalker, VariantWalker, LocusWalker) that define traversal patterns over genomic data, with extensive use of Apache Spark for distributed execution on clusters and cloud platforms (GCS, HDFS). Key entry points include the `gatk` wrapper script and individual tool classes registered via the Barclay argument parser, with workflows orchestrated through WDL/Cromwell pipelines. External dependencies include htsjdk for BAM/VCF I/O, BWA for alignment, PyMC3 for Bayesian CNV modeling, and PyTorch for deep learning-based variant scoring. The codebase is heavily tested with unit and integration tests, and supports both local and cloud-based execution.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
xebia-functional/fetch ★ 496 50 APPLICATION

Fetch is a Scala library for simple and efficient data access, built on cats-effect. It provides a monadic abstraction (`Fetch[F, A]`) that automatically optimizes data fetching through batching, caching, deduplication, and parallel execution. Users define data sources by implementing the `DataSource` trait, specifying how to fetch individual identities or batches. The library then composes fetches using standard monadic and applicative combinators, transparently batching requests to the same source and running independent fetches concurrently. It supports custom caches, optional fetches, error handling, and debugging via a separate `fetch-debug` module. The architecture is a pure library with no runtime dependencies beyond cats-effect, making it suitable for both JVM and Scala.js. Key entry points include `Fetch.apply`, `Fetch.run`, `Fetch.runLog`, and `Fetch.runCache`. External dependencies are minimal: cats-effect, cats-core, and scalatest for testing.

RATING: 8.2/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
samtools/htsjdk ★ 303 243 APPLICATION

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.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
wurmlab/sequenceserver ★ 301 121 APPLICATION

SequenceServer is a Ruby/Sinatra web application that provides a graphical interface for running NCBI BLAST+ and DIAMOND sequence similarity searches against custom databases. It manages BLAST database formatting, job submission with background execution, result parsing, and interactive visualization of alignments using D3.js and Circos-style plots. The backend uses a thread pool for concurrent job processing, YAML-based job persistence, and a plugin system for extensibility. The frontend is built with React and includes components for database selection, query input, and result exploration with export to SVG/PNG. The application is designed for bioinformatics researchers who need a self-hosted BLAST server with a modern web UI, supporting multiple BLAST programs (blastn, blastp, blastx, tblastn, tblastx) and DIAMOND. It includes comprehensive test suites for multiple BLAST versions and CI/CD pipelines for Docker and AppImage deployment.

RATING: 7.2/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: