From da8d017b925b7affa5f5d075c146f57c6b981131 Mon Sep 17 00:00:00 2001 From: Qile0317 Date: Wed, 4 Feb 2026 10:34:47 -0800 Subject: [PATCH 1/3] fix expanded sequence check --- R/Ibex_matrix.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/Ibex_matrix.R b/R/Ibex_matrix.R index 3b23b7d..3e4922e 100644 --- a/R/Ibex_matrix.R +++ b/R/Ibex_matrix.R @@ -102,9 +102,9 @@ Ibex_matrix <- function(input.data, # Determine dictionary for sequence encoding if (expanded.sequences) { #Quick Check to see if there are - corresponding to CDR1-CDR2-CDR3 - if (all(grepl("-", BCR[,"cdr3_aa"]))) { + if (!all(grepl("-", BCR[,"cdr3_aa"]))) { stop("Expanded sequences are not properly formated, please use - combineExpandedBCR().") + combineExpandedBCR() or ensure each element is CDRs 1, 2, and 3 joined by `-`") } BCR[,"cdr3_aa"] <- gsub("-", "_", BCR[,"cdr3_aa"]) dictionary <- c(amino.acids, "_") From 6ef62334d672cfae003ee401d94d16f2ad5a4d6b Mon Sep 17 00:00:00 2001 From: Qile0317 Date: Thu, 11 Jun 2026 20:01:42 -0700 Subject: [PATCH 2/3] sync versioning and NEWS.md with Bioc --- DESCRIPTION | 2 +- NEWS | 175 ---------------------------------------------------- NEWS.md | 120 +++++++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 176 deletions(-) delete mode 100644 NEWS create mode 100644 NEWS.md diff --git a/DESCRIPTION b/DESCRIPTION index 1c0804a..da0df10 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Ibex Title: Methods for BCR single-cell embedding -Version: 1.0.0.9001 +Version: 1.3.1 Authors@R: c( person(given = "Nick", family = "Borcherding", role = c("aut", "cre", "cph"), email = "ncborch@gmail.com"), person(given = "Qile", family = "Yang", role = "ctb", email = "qile.yang@berkeley.edu", comment = c(ORCID = "0009-0005-0148-2499"))) diff --git a/NEWS b/NEWS deleted file mode 100644 index 87f2fb2..0000000 --- a/NEWS +++ /dev/null @@ -1,175 +0,0 @@ -# Ibex Development Version - -- `Ibex_matrix()` now accepts character vectors of amino acid sequences directly -- removed rlang from Imports, added lifecycle -- Reformatted `NEWS` and `README.md` -- As per `basilisk` documentation: - - Add `.BBSoptions` with `UnsupportedPlatforms: win32` - - Add `configure` and `configure.win` scripts -- Add Docker infrastructure with `Dockerfile` and `.devcontainer/devcontainer.json` -- Add `.markdownlint.json` to sourcecode -- Improved testthat compatibility across platforms -- Improve adherence to verbosity arguments - -# Ibex 1.0.0 - -## Major Underlying Changes - -- Integration of Ibex with immApex -- Updated Seurat object to v5 -- Runs using basilisk instead of reticulate - no installation of python packages - -## Feature Changes - -- Renamed `Ibex.matrix()` to `Ibex_matrix()` -- Updated support for SCE format for `runIbex()` -- Update `CoNGAfy()` to function with all versions of Seurat -- Updated `quietBCRgenes()` to use `VariableFeatures()` call for SeuratV5 and backward compatibility. -- Add `getHumanIgPseudoGenes()` to return a list of human Immunoglobulin Pseudo genes that are kept by `quietBCRgenes()` - -## New Models - -- Added New Light and Heavy Chain Models -- Encoding methods now accepted: "OHE", "atchleyFactors", "crucianiProperties", "kideraFactors", "MSWHIM","tScales", "zScales" -- Sequence input: - - Human Heavy: 10000000 - - Human Light: 5000000 - - Human Heavy-Expanded: 5000000 - - Human Light-Expanded: 2500000 - - Mouse Heavy: 5000000 - - Mouse Heavy-Expanded: 5000000 -- Trained convolutional and variational autoencoders for Heavy/Light chains - - Architecture: 512-256-128-256-512 - - Parameters: - - Batch Size = 128 - - Latent Dimensions = 128 - - Epochs = 100 - - Loss = Mean Squared Error (CNN) & KL Divergence (VAE) - - Activation = relu - - Learning rate = 1e-6 - - Optimizers: Adam - - Early stopping was set to patients of 10 for minimal validation loss and restoration of best weights - - CNN autoencoders have batch normalization layers between the dense layers. - -# Ibex 0.99.31 - -- ibex_ensure_basilisk_external_dir no longer importsFrom basilisk.utils directly - -# Ibex 0.99.30 - -- Moved data processing script out of vignette to inst/scripts -- Added ibex_ensure_basilisk_external_dir with basilisk.utils - -# Ibex 0.99.29 - -- Adding internal .OnLoad() function to handle basilisk lock dir issue - -# Ibex 0.99.28 - -- Deprecated `quietBCRgenes()` -- Converted `Ibex.matrix()` to `Ibex_matrix()` -- Added Install Instructions for BioCondcutor on README and Vignette -- Removed references to Keras3 Installation -- Removed LazyData TRUE statement - -# Ibex 0.99.10 - -- Added information to example data - -# Ibex 0.99.9 - -- Examples now check if python is installed and running - -# Ibex 0.99.8 - -- Updated example data to 2k HEL BEAM-Ab from 10x -- Converted ibex_example into SCE object for compliance -- Large revision of vignette to fit new data/format -- Added species argument to runIbex -- Updated CoNGA handling of assay for Seurat and Single-Cell Objects. - -# Ibex 0.99.7 - -- Integration of Ibex with immApex -- Updated Seurat object to v5 -- Updated support for SCE format for ```runIbex()``` -- Update ```CoNGAfy()``` to function with all versions of Seurat -- Updated ```quietBCRgenes()``` to use VariableFeatures() call for SeuratV5 and backward compatibility. -- Add ```getHumanIgPseudoGenes()``` to return a list of human Immunoglobulin Pseudo genes that are kept by ```quietBCRgenes()``` - -## New Models - -- Added New Light and Heavy Chain Models -- Encoding methods now accepted: "OHE", "atchleyFactors", "crucianiProperties", "kideraFactors", "MSWHIM","tScales", "zScales" -- Sequence input: - - Human Heavy: 10000000 - - Human Light: 5000000 - - Human Heavy-Expanded: 5000000 - - Human Light-Expanded: 2500000 - - Mouse Heavy: 5000000 - - Mouse Heavy-Expanded: 5000000 -- Trained convolutional and variational autoencoders for Heavy/Light chains - - Architecture: 512-256-128-256-512 - - Parameters: - - Batch Size = 128 - - Latent Dimensions = 128 - - Epochs = 100 - - Loss = Mean Squared Error (CNN) & KL Divergence (VAE) - - Activation = relu - - Learning rate = 1e-6 - - Optimizers: Adam - - Early stopping was set to patients of 10 for minimal validation loss and restoration of best weights - - CNN autoencoders have batch normalization layers between the dense layers. - -# Ibex 0.99.6 - -- Implementing GitHub action workflows -- Adding testthat framework -- Deprecating clonalCommunity - -# Ibex 0.99.5 - -- Added geometric encoding using the BLOSUM62 matrix -- Trained classical and variational autoencoders for light/heavy chains with 1.5 million cdr sequences - - Architecture: 256-128-30-128-256 - - Parameters: - - Batch Size = 64 - - Latent Dimensions = 30 - - Epochs = 100 - - Loss = Mean Squared Error - - Optimizers: Adam - - Early stopping was set to patients of 10 for minimal validation loss and restoration of best weights - - learn rate varied by models - - classical auto encoders have batch normalization layers between the dense layers. - -# Ibex 0.99.4 - -- Added chain.checker() function to allow for uncapitlized chain calls - -# Ibex 0.99.3 - -- Updated models for manuscript revision - - Architecture: 256-128-30-128-256 - - Parameters: - Batch Size = 64 - Learning Rate = 0.001 - Latent Dimensions = 30 - Epochs = 50 - Loss = Mean Squared Error - - Optimizers: RAdam (for amino acid properties) and RMSprop (for OHE) - - Early stopping was set to patients of 10 for minimal validation loss and restoration of best weights - -# Ibex 0.99.2 - -- Updated models to include radam optimization, early stop for min 10 epochs, and all trained on 800,000 unique cdr3s -- quietBCRgenes() now does not remove human Ig pseudogenes - -# Ibex 0.99.1 - -- Added detection of chain length to function call -- Added support for direct output of combineBCR() -- Modified quietBCR() to include constant regions and J-chains - -# Ibex 0.99.0 - -- Initial commit diff --git a/NEWS.md b/NEWS.md new file mode 100644 index 0000000..4e27890 --- /dev/null +++ b/NEWS.md @@ -0,0 +1,120 @@ +# Ibex - Change Log + +## v1.3.1 + +* Fixed inverted boolean condition check for `.EXP` models in `Ibex_matrix` +* Realign versioning again with Bioconductor release + +## v1.1.1 +* Aligned version with Bioconductor release +* Switched default branch to `devel` for Bioconductor compatibility +* Updated CI workflows to target `devel` branch +* Converted NEWS to NEWS.md format +* Added automated GitHub Release workflow via tags +* `Ibex_matrix()` now accepts character vectors of amino acid sequences directly +* Removed rlang from Imports, added lifecycle +* As per `basilisk` documentation: + - Add `.BBSoptions` with `UnsupportedPlatforms: win32` + - Add `configure` and `configure.win` scripts +* Add Docker infrastructure with `Dockerfile` and `.devcontainer/devcontainer.json` +* Improved testthat compatibility across platforms +* Improve adherence to verbosity arguments + +## v1.0.0 + +### Major Underlying Changes + +* Integration of Ibex with immApex +* Updated Seurat object to v5 +* Runs using basilisk instead of reticulate - no installation of python packages + +### Feature Changes + +* Renamed `Ibex.matrix()` to `Ibex_matrix()` +* Updated support for SCE format for `runIbex()` +* Update `CoNGAfy()` to function with all versions of Seurat +* Updated `quietBCRgenes()` to use `VariableFeatures()` call for SeuratV5 and backward compatibility +* Add `getHumanIgPseudoGenes()` to return a list of human Immunoglobulin Pseudo genes that are kept by `quietBCRgenes()` + +### New Models + +* Added New Light and Heavy Chain Models +* Encoding methods now accepted: "OHE", "atchleyFactors", "crucianiProperties", "kideraFactors", "MSWHIM", "tScales", "zScales" +* Sequence input: + - Human Heavy: 10000000 + - Human Light: 5000000 + - Human Heavy-Expanded: 5000000 + - Human Light-Expanded: 2500000 + - Mouse Heavy: 5000000 + - Mouse Heavy-Expanded: 5000000 +* Trained convolutional and variational autoencoders for Heavy/Light chains + - Architecture: 512-256-128-256-512 + - Parameters: + - Batch Size = 128 + - Latent Dimensions = 128 + - Epochs = 100 + - Loss = Mean Squared Error (CNN) & KL Divergence (VAE) + - Activation = relu + - Learning rate = 1e-6 + - Optimizers: Adam + - Early stopping was set to patients of 10 for minimal validation loss and restoration of best weights + - CNN autoencoders have batch normalization layers between the dense layers + +## Pre-release Development (v0.99.6 - v0.99.31) + +* ibex_ensure_basilisk_external_dir no longer importsFrom basilisk.utils directly +* Moved data processing script out of vignette to inst/scripts +* Added ibex_ensure_basilisk_external_dir with basilisk.utils +* Adding internal .OnLoad() function to handle basilisk lock dir issue +* Deprecated `quietBCRgenes()` +* Converted `Ibex.matrix()` to `Ibex_matrix()` +* Added Install Instructions for Bioconductor on README and Vignette +* Removed references to Keras3 Installation + +## Pre-release Development (v0.99.0 - v0.99.5) +* Initial commit and early development +* Added detection of chain length to function call +* Added support for direct output of combineBCR() +* Modified quietBCR() to include constant regions and J-chains +* Updated models to include radam optimization, early stop, trained on 800,000 unique cdr3s +* quietBCRgenes() now does not remove human Ig pseudogenes +* Updated models for manuscript revision +* Added chain.checker() function to allow for uncapitalized chain calls +* Trained classical and variational autoencoders for light/heavy chains (architecture: 256-128-30-128-256) +* Integration of Ibex with immApex +* Updated Seurat object to v5 +* Updated support for SCE format for `runIbex()` +* Update `CoNGAfy()` to function with all versions of Seurat +* Updated `quietBCRgenes()` to use VariableFeatures() call for SeuratV5 and backward compatibility +* Added `getHumanIgPseudoGenes()` to return a list of human Immunoglobulin Pseudo genes +* Added new light and heavy chain models with encoding methods: OHE, atchleyFactors, crucianiProperties, kideraFactors, MSWHIM, tScales, zScales +* Trained convolutional and variational autoencoders (architecture: 512-256-128-256-512) +* Implementing GitHub action workflows +* Adding testthat framework +* Deprecated clonalCommunity +* Added geometric encoding using the BLOSUM62 matrix +* Added information to example data +* Examples now check if python is installed and running +* Updated example data to 2k HEL BEAM-Ab from 10x +* Converted ibex_example into SCE object for compliance +* Large revision of vignette to fit new data/format +* Added species argument to runIbex +* Implementing GitHub action workflows +* Adding testthat framework +* Deprecating clonalCommunity +* Added geometric encoding using the BLOSUM62 matrix +* Added chain.checker() function to allow for uncapitalized chain calls +* Updated models for manuscript revision +* Updated models to include radam optimization, early stop, trained on 800,000 unique cdr3s +* quietBCRgenes() now does not remove human Ig pseudogenes +* Added detection of chain length to function call +* Added support for direct output of combineBCR() +* Modified quietBCR() to include constant regions and J-chains +* Initial commit +* Deprecated `quietBCRgenes()` +* Converted `Ibex.matrix()` to `Ibex_matrix()` +* Added Install Instructions for Bioconductor on README and Vignette +* Removed references to Keras3 Installation +* Moved data processing script out of vignette to inst/scripts +* Added ibex_ensure_basilisk_external_dir with basilisk.utils +* Adding internal .OnLoad() function to handle basilisk lock dir issue From 2772215274fc84b1085fd03246a6e1f02e74b579 Mon Sep 17 00:00:00 2001 From: Qile0317 Date: Thu, 11 Jun 2026 20:10:22 -0700 Subject: [PATCH 3/3] increment patch version --- DESCRIPTION | 2 +- NEWS.md | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 8d8f5f4..d624b9d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: Ibex Title: Methods for BCR single-cell embedding -Version: 1.3.1 +Version: 1.3.2 Authors@R: c( person(given = "Nick", family = "Borcherding", role = c("aut", "cre", "cph"), email = "ncborch@gmail.com"), person(given = "Qile", family = "Yang", role = "ctb", email = "qile.yang@berkeley.edu", comment = c(ORCID = "0009-0005-0148-2499"))) diff --git a/NEWS.md b/NEWS.md index 4e27890..9887db1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,11 @@ # Ibex - Change Log -## v1.3.1 +## v1.3.2 * Fixed inverted boolean condition check for `.EXP` models in `Ibex_matrix` + +## v1.3.1 + * Realign versioning again with Bioconductor release ## v1.1.1