Skip to contents

bHIVE 0.99.1

C++ Backend

  • Added RcppArmadillo backend for BLAS-optimized bulk affinity and distance matrix computation, replacing per-element R loops
  • Scalar affinity function for clone/mutate hot path avoids 1x1 matrix allocation overhead
  • C++ implementations for clonal selection iteration, network suppression, kmeans++ initialization, final assignment, somatic hypermutation (5 methods), and idiotypic network dynamics

R6 Class Architecture

  • New ImmuneRepertoire class for antibody collections with metadata tracking (isotype, state, age, lineage)
  • New ImmuneAlgorithm abstract base class with fit/predict/summary interface
  • New AINet class wrapping core algorithm with composable module injection
  • Both R6 composition and functional API equally supported

New Modules

  • SHMEngine — Five somatic hypermutation strategies: uniform (original behavior), airs (affinity-proportional), hotspot (feature-gradient-weighted), energy (budget-constrained), and adaptive (per-feature Adam-like moment tracking)
  • IdiotypicNetwork — Antibody-antibody network dynamics with bell-shaped activation function replacing epsilon-threshold suppression
  • GerminalCenter — T-follicular helper mediated selection with task-aware quality scoring and resource competition
  • Microenvironment — Density-dependent zone classification (stable/explore/boundary) with chemokine-like gradient computation
  • VDJLibrary — Combinatorial V(D)J gene library initialization via PCA, k-means clustering, or random partition of feature space
  • ActivationGate — Two-signal activation gate requiring both antigen recognition and costimulatory context (density, danger, or entropy)
  • MemoryPool — Archive high-affinity antibodies as long-lived memory cells with threshold-based recall
  • ClassSwitcher — Isotype class switching (IgM broad, IgG specific, IgA boundary) modulating effective kernel width
  • ConvergentSelector — Cross-repertoire consensus identification of public antibodies for ensemble methods

Documentation

  • Complete README rewrite covering functional API, R6 API, module reference table, and architecture overview
  • New pkgdown website with Bootstrap 5 Flatly theme, organized reference groups, and tutorial navigation
  • New article: “Composing Immune Modules” — R6 composition patterns for all 9 modules with worked examples
  • New article: “Advanced Tuning & Workflows” — swarmbHIVE grid search, honeycombHIVE multilayer refinement, refineB optimizer comparison, caret integration, and visualizeHIVE plot types
  • New article: “Algorithm & Biological Foundations” — comprehensive mathematical reference covering all affinity kernels, distance functions, SHM strategies, idiotypic ODE system, germinal center selection, and parameter guidance
  • Added roxygen @examples to refineB, bHIVEmodel, and ImmuneAlgorithm (now 90% example coverage)
  • GitHub Actions workflow for automated pkgdown deployment to borch.dev

Package Infrastructure

  • Created R/bHIVE-package.R with roxygen-managed @useDynLib and @importFrom Rcpp sourceCpp directives
  • Added %||% operator @name null-coalesce to avoid illegal characters in Rd \name field
  • Moved tutorial vignettes to vignettes/articles/ (pkgdown-only, not installed with package) to reduce installed size
  • Added pkgdown configuration (_pkgdown.yml) with 7 reference groups and structured article hierarchy

Testing

  • Added comprehensive unit tests for all 12 R6 module classes (ImmuneRepertoire, ImmuneAlgorithm, AINet, SHMEngine, IdiotypicNetwork, GerminalCenter, Microenvironment, VDJLibrary, ActivationGate, MemoryPool, ClassSwitcher, ConvergentSelector) and C++ backend functions
  • Test coverage increased from ~26% to ~85% (681 tests, 0 failures)

BiocCheck Compliance

  • Replaced all sapply() calls with vapply() in bHiVE.R and visualizeHIVE.R
  • Replaced all 1:n patterns with seq_len() / seq_along()
  • Removed install.packages() calls from vignettes
  • Removed LazyData: true from DESCRIPTION
  • Updated R dependency to >= 4.5.0
  • Updated biocViews to Software, Clustering, Classification, Regression, Network
  • Added class-level @param documentation for all R6 initialize() arguments across 11 module classes
  • Added @param ... Not used. to all R6 print() methods

Bug Fixes

  • Fixed kmeans++ sampling: corrected cumulative sum fallback index and runif-to-integer cast
  • Fixed cosine similarity epsilon (1e-12) for numerical stability
  • Fixed division-by-zero guard in idiotypic dynamics when theta_low equals theta_high
  • Fixed VDJLibrary NaN in kmeans for single-allele edge cases
  • Fixed VDJLibrary NA subscript when feature dimensions not divisible by 3
  • Removed duplicate Classification from biocViews, added Clustering
  • Fixed vignette YAML parsing error from bare --- horizontal rule

bHIVE 0.99.0

  • Initial submission version with core AIS functionality
  • Clonal selection, network suppression, and mutation for clustering, classification, and regression
  • honeycombHIVE multilayer architecture
  • swarmbHIVE hyperparameter tuning via BiocParallel
  • caret model integration (bHIVEmodel, honeycombHIVEmodel)
  • Visualization utilities via ggplot2