Upcoming Release Schedule

Bioconductor has moved to GIT for contributed packages; the subversion logs are no longer active. The following are the git logs.

GIT Logs

This is a list of recent commits to git.bioconductor.org, the devel(development) branch of the Bioconductor GIT repository.

This list is also available as an RSS feed (devel branch), and RSS feed (release branch)

Package: DuckDBDataFrame
Commit: 509a9dadc16fba0ebc678c5c59939986185f5cb9
Author: Patrick Aboyoun <aboyoun.patrick@gene.com>
Date: 2026-11-15 10:56:01 -0800
Commit message:

 Accept logical row subscripts on row_number-keyed DuckDB tables

Subsetting a DuckDBTable, DuckDBDataFrame or DuckDBColumn keyed by row
number with a logical i, such as x[keep] or x[keep, ], failed with
"unsupported 'i' for row subsetting with row_number", even for x[TRUE].
Only numeric subscripts were handled. Code that selects rows with a
logical vector, such as SpatialFeatureExperiment picking out one
sample's geometries, therefore could not use a lazy column.

A logical i of length 1 or nrow(x) with no NAs is now converted to row
positions and handled like a numeric one. A character i still fails,
since these tables have no row names, and its error now says to use a
numeric or logical i.

Adds a regression test that fails without the change.
 
Package: msPurity
Commit: 85f3aa56c9edbb2068213f809b6254c411d19f5b
Author: Ossama Edbali <ossedb@gmail.com>
Date: 2026-11-15 15:40:51 +0000
Commit message:

 perf(check): Read raw spectra serially and slim down examples

Spectra reads mzML files with bpparam(), which on Windows is a SnowParam
that starts a new cluster for every call. msPurity parallelises over
files through its own cores argument, so raw data access now uses
SerialParam. This removes the worker start-ups that took most of the
Windows test time.

Examples that reran xcms and purityA now load the saved fixtures,
spectralMatching uses the bundled mini library, and the DIMS and purityX
examples work on fewer peaks. Examples no longer write to the working
directory. Legacy tests covered by the golden SQLite dumps are removed;
the purityX plot check they held moves to test.7_purityX.R.

Bump the version to 1.39.4 with a NEWS entry.
 
Package: MultiAssaySpatialExperiment
Commit: aba2a772d08874f3ca4f0dde1302e4e0cf969602
Author: Patrick Aboyoun <aboyoun.patrick@gene.com>
Date: 2026-11-15 10:30:44 -0800
Commit message:

 Config/roxygen2/version change from 8.1.0 to 8.1.1 in DESCRIPTION. That last change is from a roxygen run and isn't part of the fix.

Accept the legacy "full_res_image_pixels" unit in the SFE coercion

as(mase, "SpatialFeatureExperiment") failed with "'arg' should be one of
"full_res_image_pixel", "micron"" for any MASE built from an SFE that
stores its unit as "full_res_image_pixels", which is how older SFE
objects, including the SFEData example datasets, record it. The SFE
constructor only accepts the singular spelling, and the coercion passed
the stored value through unchanged.

Normalize the legacy spelling both when the unit is stored in
metadata(mase) and when it is read back, so MASE objects written before
this fix also convert. Adds a regression test that round-trips an SFE
carrying the legacy unit and a MASE with the legacy spelling already
stored.
 
Package: MetNet
Commit: 66fa61d01a7e50a5281b7c9d80b8ef5b36ac37a0
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 19:24:41 +0100
Commit message:

 bump version to 1.31.1
 
Package: MetNet
Commit: 3eaf4faa5d3e214f6e9e83c176a03ca927075ef7
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 19:16:35 +0100
Commit message:

 revert changes
 
Package: MetNet
Commit: 043d7a249aee6aefa49431662fbe5fa5e287b577
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 19:07:29 +0100
Commit message:

 update as.data.frame
 
Package: MetNet
Commit: f6dd0288beff9ebc326168393bd56dedee67ab87
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 18:57:12 +0100
Commit message:

 update as.data.frame Rd
 
Package: MetNet
Commit: f0d5ea74065fc34f3ab0124530354d20ed0e9374
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 18:47:15 +0100
Commit message:

 update as.data.frame
 
Package: MetNet
Commit: 7dbc9d223d40a25a2fe7e18fc188c29e686d2878
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 18:45:18 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: ef949017175cfe619d1da789da8fb1d1bfeda435
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 15:06:57 +0100
Commit message:

 switch back to one mthod for as.data.frame
 
Package: MetNet
Commit: f1ebeb2526ee9c9104490669c06f7312eca2f90b
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 14:48:48 +0100
Commit message:

 update as.data.frame.AdjacencyMatrix
 
Package: MetNet
Commit: 2d6a19615fbce966f4bcead456770fc9ecb10117
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 14:37:30 +0100
Commit message:

 update as.data.frame
 
Package: MetNet
Commit: c8816cbe572ec9a1c1914449a1206c4eafbe7a92
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 14:28:40 +0100
Commit message:

 Update DESCRIPTION
 
Package: MetNet
Commit: 8b7bcfdd5b78e67546b8f18f2ef8e8a7c35c02c1
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-15 14:22:34 +0100
Commit message:

 change .as.data.frame to as.data.frame
 
Package: MetNet
Commit: cbf0a5c5e253c806e8a112bcf4fe360198d22415
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 22:28:35 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: 2827b381bac65c9f4edce8e2bb46db35b44dfac6
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 22:18:48 +0100
Commit message:

 update method
 
Package: MetNet
Commit: 1fc685794a3a05f44b8b553bc759fa63f320225c
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 22:05:25 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: 694df86dd8badb8f5d59477e6ba67b8a07bbd523
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 22:01:33 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: 1cde0aecf9462f751ef7d077742e610a0ccfc84a
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 21:58:36 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: ee085b7386db424b9984a4155375d30a05757f2e
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 21:41:33 +0100
Commit message:

 update as.data.frame
 
Package: MetNet
Commit: 631da269894675d185765a439e4ffb37d6c10349
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 21:13:15 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: cac31031a0c21f76d6fcc20bb4f04307b2052f6b
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 21:10:49 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: b432bc5bd13b7819b4c25a598dd84988c76b445c
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-11-08 21:07:13 +0100
Commit message:

 Update AllGeneric.R
 
Package: MetNet
Commit: f5b02a280e519b83ff9f04493b270bec0350e57e
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 16:27:25 +0200
Commit message:

 Update MetNet.Rmd
 
Package: MetNet
Commit: e2079e10925cb94ce4fae7b2c44a340f8e8c80db
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 16:23:48 +0200
Commit message:

 Update check-bioc.yml
 
Package: MetNet
Commit: 2e0dec1842f8b52a6815d9fe9c3da317d01c607d
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 16:23:38 +0200
Commit message:

 Update MetNet.Rmd
 
Package: MetNet
Commit: 245ef39327f08ef026129e6c5bfc4234877d9e41
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 16:06:21 +0200
Commit message:

 Update combine.R
 
Package: MetNet
Commit: 1866ea43b609c1ec2d931d8f4f7409a8a624828f
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 15:36:55 +0200
Commit message:

 Update MetNet.Rmd
 
Package: MetNet
Commit: 5087071d9068f55d335e8fe763745bc6db876b2a
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 15:31:00 +0200
Commit message:

 Update MetNet.Rmd
 
Package: MetNet
Commit: d9f8830ca8347ecce52b09dc0c5a0099ea9e2c22
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 15:20:58 +0200
Commit message:

 outcomment relevenant rows
 
Package: MetNet
Commit: 45d5682d0005c7fc3c0ec8f3be2611893ed06b32
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 13:32:02 +0200
Commit message:

 revoke temporary changes and do not biild vignette in pass 2
 
Package: MetNet
Commit: a5b7ea11b7ff508cd4167d580a3e14fa2cb0a19d
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 13:27:25 +0200
Commit message:

 add temporary diagnostic code to trace back error
 
Package: MetNet
Commit: 339547dcc8a40b0fc454ed33d39e44fb039880aa
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 13:21:31 +0200
Commit message:

 replace "as.data.frame" by S4Vectors::as.data.frame in AllGeneric
 
Package: MetNet
Commit: 6e00656cb2703352f8ff83fb7c5b31c4722dee52
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 11:53:50 +0200
Commit message:

 Update check-bioc.yml
 
Package: MetNet
Commit: 1ea266cf601b7cdd8d7cf7a8ef8cd41db7d6f8cd
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 11:46:56 +0200
Commit message:

 Update check-bioc.yml
 
Package: MetNet
Commit: 56a6672c02da428ba28264cd7f2aa8ae5e95c9de
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-14 11:33:39 +0200
Commit message:

 update yaml
 
Package: MetNet
Commit: b41e6b75c4bc9b0da9d45f8ba5c16bba0f4fcc8e
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2026-09-10 16:07:14 +0200
Commit message:

 Merge remote-tracking branch 'upstream/devel' into devel
 
Package: MetNet
Commit: a3fde3d72d2291b02732e976befad6d530caaa57
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2025-10-27 16:21:04 +0100
Commit message:

 Update test_methods.R
 
Package: MetNet
Commit: b659acd19cd903573190de078a7049aba5bae13e
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2025-10-27 15:59:13 +0100
Commit message:

 Update test_methods.R
 
Package: MetNet
Commit: 7e1a4dee2f03fc2fbed739488407b53adf057e82
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2025-10-27 14:48:27 +0100
Commit message:

 Update test_methods.R
 
Package: MetNet
Commit: d23d79ebb8141afdd25d557a34d82c71464f92ac
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2025-10-27 14:41:27 +0100
Commit message:

 add more Sys..setenv and optons before calling parmigene
 
Package: MetNet
Commit: 83f0a22d79f56966e1f8ae21b2a99c1d218463e6
Author: Thomas Naake <thomasnaake@gmx.de>
Date: 2025-10-27 14:04:13 +0100
Commit message:

 add RNGkind and Sys.setenv before calling statistical/aracne
 
Package: microbiome
Commit: 6ae6ce98abd79316d8c902bf3e8ff58220c04114
Author: antagomir <leo.lahti@iki.fi>
Date: 2026-11-15 17:39:43 +0200
Commit message:

 Merge remote-tracking branch 'origin/master' into devel
 
Package: microbiome
Commit: 7884f9462d707f4a2b7fb82e7f0b6bd7446e13e1
Author: Leo Lahti <leo.lahti@iki.fi>
Date: 2026-11-15 17:39:05 +0200
Commit message:

 Merge pull request #234 from 0xMuluh/plot-regression-docs

Explain the shading of plot_regression 
Package: microbiome
Commit: a2064403e07982a3449a122bca2deaeddf519f36
Author: Muluh <127390183+0xMuluh@users.noreply.github.com>
Date: 2026-11-13 00:12:10 +0200
Commit message:

 Explain the shading of plot_regression
 
Package: microbiome
Commit: c0ff2962723f8135c5aa004c735e200f4b99852a
Author: Leo Lahti <leo.lahti@iki.fi>
Date: 2026-10-25 00:42:25 +0300
Commit message:

 Merge pull request #233 from microbiome/devel

Camargo evenness fix (#231), version 1.35.2 
Package: structToolbox
Commit: 00a9daee86b78dfa949cbf93c2f268486af8e136
Author: Gavin Rhys Lloyd <grlloyd@users.noreply.github.com>
Date: 2026-11-15 14:50:33 +0000
Commit message:

 Fix bugs from structToolbox review (1.25.2) (#71)

* fix corr_coef p-values and coefficients for pearson

corr_coef picked p-values and coefficients out of the cor.test
output by position, assuming 7 values per factor. Pearson returns
10 (it also has df and a confidence interval), so p_value held the
degrees of freedom and coeff held the raw p-value. With more than
one factor the positions were also wrong. Spearman and Kendall
were not affected.

Now the p-value and estimate are taken by name, so the columns are
the same for every method. Add a test comparing corr_coef with
cor.test for all three methods.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix nroot_transform ignoring the root argument

The constructor passed root=2 to new_struct instead of root=root,
so nroot_transform(root=n) always took the square root. Add a test
for the default and a non-default root.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix knn_impute swapping limits when imputing by samples

pmp::mv_imputation applies rowmax to rows and colmax to columns.
With by='samples' the rows are samples, but rowmax was still set
from feature_max and colmax from sample_max. Choose the limits
according to 'by'. Add a by='samples' test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix ttest unpaired estimates labelling

t.test(A,B) is called with A = level 2 and B = level 1, so the
estimates come back as mean(level 2), mean(level 1), but the
columns were labelled in level order. Reorder the values to match
the labels.

fold_change (geometric) computed the fold change from these columns
by position, so update it to keep its output unchanged. Add a test
comparing the estimates with the group means.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* remove redundant reassignment of X and y in ttest

 was reassigned to the same value, and y was reset to the raw
sample_meta column, discarding the factor conversion and relevel
above it. Results were unaffected because y is only compared with
the level labels, but the lines were misleading.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix grid_search_1d optimum selection

In the model branch, the metric for each search value was found by
comparing search.value with the loop index, so it was only correct
when search_values was 1:k.
first_min never considered the last value, errored for fewer than
three values, and its 2% improvement threshold went the wrong way
for negative values (max_min='max'), so it could pick a worse
value. first_min is also used by forward_selection_by_rank.
Add tests for search values other than 1:k and for first_min.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix HSDEM keeping p-values for only one term

ith more than one factor, apply() merged the per-feature lists of
term results into one list-matrix, so the following code looped
over term tables rather than features and produced malformed
output. Also, emmeans prints a note for main effects involved in an
interaction, and the tryCatch treated any message as a failure, so
those terms became NA.

Collect results per feature with lapply, name each p-value by its
contrast (prefixed by the term when there is more than one), line
the results up by name so failed terms are NA, and suppress
emmeans messages. Single-factor column names are unchanged. Add a
multi-factor test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix bootstrap run() failing on a missing parameter

run() read 'number_of_iterations', but the parameter is
'number_of_repetitions', so it always failed with "no slot of
name". Add a test that bootstrap runs and collects an output for
each repetition.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix linear_model model_predict erroring

model_predict called M$predicted_values(...) as a function instead
of assigning to it, so model_predict and model_apply always failed.
Add a test for predictions on training and new data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix tSNE predicted output and init parameter

predicted pointed at 'tsne', which is not a slot (the output is
'Y'), so predicted() always failed. The init parameter had
max_length=1, so any data.frame or DatasetExperiment of starting
coordinates failed validation and only NULL could be used. Add a
test for predicted() and both init types.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix log, nroot and mean_of_medians passing empty data when trained

These classes only defined model_apply, so model_train/model_predict
fell back to the struct defaults and predicted() returned the empty
prototype. In a model sequence used with train/predict (e.g. inside
cross-validation) the next model received an empty dataset.

Add model_train and model_predict methods that call model_apply,
as vec_norm and constant_sum_norm do, and add the methods to the
model_train/model_predict Rd files. Add train-then-predict tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* add drop_empty option to filter_na_count

interaction() keeps unused levels and empty combinations of
factors. Those groups have 0 measured values, which is always below
the threshold, so every feature is removed when a factor has an
unused level or a combination of levels has no samples.

Add a drop_empty parameter: FALSE (default) keeps the existing
behaviour, TRUE ignores groups with no samples. Add tests for both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* warn when blank_filter labels match no samples

Labels are matched exactly. If blank_label matched no samples,
pmp found no blanks and kept every feature. If qc_label matched no
samples, the QC median was NA and every feature was removed. Both happened silently. Warn in each case. Add tests.

Also make the documented blank_label default ('Blank') match the
constructor default ('blank').

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix equal_split only choosing the first rows of larger groups

Training indices were drawn from 1:nMax, where nMax is the size of
the smallest group, so only the first nMax samples of each larger
group could ever be selected. Draw from each group's own size.
Add a test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix pairs_filter level check always passing

levels() of a subset of a factor keeps all levels, so the check
that each sample id has every level always passed, and the
remainder check let through ids such as A,A or A,A,A,B. Count the
samples per level for each id and require every level to be
present the same number of times. This also affects paired
fold_change, which uses pairs_filter.

Also apply the filter once after the loop instead of on every
iteration, and stop converting the sample_id column to a factor
in the output. Add a test.

* fix PLSDA keeping training yhat and scores after predict

model_predict stored the result of callNextMethod (the PLSR
predictions) in a separate object, so M$yhat and M$scores kept the
training values when predicting new data. Predicted labels and
probabilities were already computed from the new data. Assign the
result back to M. Add a test that predicts on new samples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix SVM class_weights only working for a single weight

The check length(M$class_weights==1) was true for any non-NULL
value, so a named vector of weights was repeated and renamed, and
"inverse" became a named character vector. Both made e1071::svm
fail. Only repeat the weight when class_weights is a single number.
Add a test comparing with e1071::svm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix empty test set when split training fraction rounds to 0

split_data and stratified_split built the test set with
-in_training. When no samples were selected for training,
x[-integer(0)] selects nothing, so the test set was empty as well.
Use setdiff of all rows and the training rows. Add tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix mv_feature_filter_hist plotting wrong columns for within methods

The chart checked for method 'within', which is not an allowed
value (they are within_all and within_one). For those methods the
flags have a column per group, so the histogram silently plotted
the first group's fractions coloured by the second group's. Check
for any method starting with 'within'. Add a test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* version bump 1.25.2 and update news

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> 
Package: splatter
Commit: df314676168115b419bdd69536a960da3c394184
Author: Luke Zappia <lazappi@users.noreply.github.com>
Date: 2026-11-15 14:08:12 +0100
Commit message:

 Update NEWS for 3.24 release
 
Package: msPurity
Commit: 5222c1317fd019200ca7cb5dbaaea3a375188f9b
Author: Ossama Edbali <ossedb@gmail.com>
Date: 2026-11-14 15:59:59 +0000
Commit message:

 chore(release): Bump version to 1.39.3

Add the NEWS entry for building the Parquet layer on the MsBackendParquet
dataset API, which moves MsBackendParquet, arrow and jsonlite to Imports.
 
Package: msPurity
Commit: d06329cc2bde0dd1eba1e8df4e0917fa0787cf97
Author: Ossama Edbali <ossedb@gmail.com>
Date: 2026-11-12 14:34:22 +0000
Commit message:

 refactor(parquet): Build on the MsBackendParquet dataset API (#126)

- Require MsBackendParquet (>= 0.99.10), arrow and jsonlite as imports;
  the package gate keeps only the zstd/snappy codec check.
- Read, create and commit manifests with readManifest(), newManifest()
  and writeManifest(). Commits keep the msPurity_parquet_conflict class
  on top of mzstack_conflict.
- Raise errors through mzstackCondition(): each carries mzstack_
  and msPurity_parquet_; handlers and parquetCapabilities() use
  the mzstack_* names.
- Write averaged and library spectra with
  createMsBackendParquetDataset(), using run_id and peak-annotation
  columns. Run paths are relative, spectrum_index is int64, all-NA core
  columns and empty library runs are not written.
- Read spectrum metadata and peaks through MsBackendParquet, selecting
  by spectrum id; drop the arrow fallback and the part-0.parquet file
  name assumption. Source fingerprints come from manifestRuns().
 </pre>
    </div>
  
    
Package: poem
Commit: 807c40cded130f94a07e2720f3afa73d521f9af7
Author: Siyuan Luo <roseluosy@gmail.com>
Date: 2026-11-15 12:09:29 +0100
Commit message:

 Follow-up to #4: compute only requested class-level spatial metrics, regenerate docs, bump to 1.5.1
 
Package: poem
Commit: a42b5693f2fe3c9a25a4e1c557599d05adf065b0
Author: Siyuan Luo <roseluosy@gmail.com>
Date: 2026-11-15 12:01:09 +0100
Commit message:

 Merge pull request #4 from btraven00/spatial-suggests
 
Package: poem
Commit: c27f876b8cb41a0e087f8cbee3b6b492d1868fcf
Author: Siyuan Luo <roseluosy@gmail.com>
Date: 2026-11-15 11:43:54 +0100
Commit message:

 Merge remote-tracking branch 'upstream/devel'
 
Package: poem
Commit: 597ffee44b14ba3adc6793519f4d06e68a3a3c29
Author: ben <ben.uzh@proton.me>
Date: 2026-11-09 13:47:28 +0100
Commit message:

 chore: move spatial dependencies to Suggests

Instead, load them only in the spatial functions

Fixes: #3
 
Package: poem
Commit: ce07eced8e64264e78231081d8578016d35e5905
Author: Siyuan Luo <roseluosy@gmail.com>
Date: 2026-01-23 16:00:34 +0100
Commit message:

 Add citation section to README

Added citation information for the poem package, including a BibTeX entry. 
Package: igvShiny
Commit: 205e3c3d1012870f0030088f03c1bb3180e81b1a
Author: Arek Gladki <41166437+gladkia@users.noreply.github.com>
Date: 2026-11-15 11:07:37 +0100
Commit message:

 fix: local-file URLs with a query string for every loader, registry fetch fallback (#88, #182) (#203)

* fix: strip the query string for every local-file loader, fall back when the registry fetch fails

Local-file track and custom-genome URLs were built by concatenating onto the
page address, so an app opened with a query string produced broken URLs for
every loader except bed and bedpe (#88). All eleven sites now go through one
helper.

get_css_genomes() returned the basic genome list only when the HEAD probe
answered with an HTTP error. A transport failure of the probe, or of the fetch
after a successful probe, raised instead (#182). Both now fall back; malformed
registry content still surfaces as an error.

Bump version to 1.9.53.

* test: keep the query of a resource path, declare testthat >= 3.2.0

The local-urls scenario only used plain paths, so a change that stripped the
query from the joined url instead of the page address would still pass while
dropping w and nonce from registerDataObj() urls. One fixture with such a path
and one assertion cover it; with appUrl() mutated that way exactly this
assertion fails.

local_mocked_bindings() needs testthat 3.1.7 and is stable from 3.2.0; the
Suggests entry had no version. 
Package: STRINGdb
Commit: e7f77b1c917b33b1b76dfecf3a3964e496df491f
Author: Damian <damian.szk@gmail.com>
Date: 2026-11-15 09:18:55 +0100
Commit message:

 NEWS: objects kept in a workspace or with save() must be re-created too

The planned 3.0 change for saved objects named only saveRDS(). Objects saved with save(), or restored with an R workspace (.RData), which RStudio can save and restore automatically, keep the 2.x method code in the same way.
 
Package: STRINGdb
Commit: 845ae5213303fc25dc96e7c849a1841e6bef54e0
Author: Damian <damian.szk@gmail.com>
Date: 2026-11-15 09:07:38 +0100
Commit message:

 Review of the release fixes: NA species, https version lookup, help text

From an independent review of the 2.25.7 commits:

- get_homologs_besthits() leaves out NA species: with c(10090, NA),
  STRING ignored the whole list and searched every species. Tested.
- The constructor's version lookup also uses https, so that every
  request to STRING's API does, as documented.
- caller_identity: the help, docstrings and warning say it stops with an
  error in the next release (not that it is removed), as NEWS says.
- Help text still contradicting the fixes: get_homologs_besthits (one or
  several species), remove_homologous_interactions (at or above the
  bitscore), get_paralogs (A-B and B-A rows, self-hits),
  get_ppi_enrichment (a list), get_annotations (string_ids needed),
  get_term_proteins (deprecated, returns no proteins).
- The class page lists get_homology_graph and ppi_enrichment, and leaves
  the ignored caller_identity out of the calls.
- Vignette: get_annotations leaves out only PubMed (KEGG is included),
  and figures are drawn at the text width, so the four clusters fit.
- NEWS: wording of the withdrawn list columns and of invalid settings;
  the planned changes without a deprecation step, downloadAbsentFileSTRING,
  set_background() and objects saved by 2.x.
 
Package: STRINGdb
Commit: 1d5f9d14a2fcd7e10406a9cce6474fa6d34082df
Author: Damian <damian.szk@gmail.com>
Date: 2026-11-15 08:44:13 +0100
Commit message:

 Version 2.25.7: NEWS of the fixes and the plan for the next release

NEWS lists the bug fixes and documentation corrections of 2.25.7, and
the changes planned for the next Bioconductor release (STRINGdb 3.0.0).

The change of inputGenes and preferredNames to list columns, announced
in 2.25.4, is withdrawn: write.csv() and similar functions cannot write
list columns, and exporting these tables is common. The help of
get_enrichment() and get_values_ranks_enrichment() no longer announces
it. caller_identity will stop with an error in the next release, and be
removed in the one after.
 
Package: STRINGdb
Commit: 43ef8c98d003a3a80e551a59181c539adda697fd
Author: Damian <damian.szk@gmail.com>
Date: 2026-11-15 08:44:02 +0100
Commit message:

 Vignette: cluster the most significant genes, four clusters, p53 paralogs

- The coloured table of the payload example gets its own name. It
  overwrote the table sorted by p-value, which add_diff_exp_color()
  reorders with up-regulated genes first, so the clustering ran on
  up-regulated genes only.
- The four clusters are shown together; Sweave kept only the first one.
- get_clusters() offers fastgreedy, walktrap and edge.betweenness (no
  spinglass).
- get_paralogs() compares the given proteins, so the example compares
  TP53, TP63 and TP73.
- Without the LOC genes, about 8% stay unmapped (not < 6%); the igraph
  address is https://igraph.org.
 
Package: STRINGdb
Commit: 4ebbf95bf90e3cc485a07baf457b2f7cad4dd54d
Author: Damian <damian.szk@gmail.com>
Date: 2026-11-15 08:42:14 +0100
Commit message:

 Help pages open by method name; correct wrong help text

- 27 method pages get a plain alias, so ?get_png, ?plot_network,
  ?get_interactions, ?mp and the others now open; before, only 7 of the
  38 working methods could be found by name. load keeps only its method
  alias, so that ?load still opens base::load.
- get_annotations_desc.Rd is removed: the method does not exist.
- get_paralogs: it returns the similarity among the given proteins, not
  all paralogs (one protein gives only itself).
- get_annotations: real usage, arguments and returned columns.
- get_clusters: no 'spinglass'; get_homologs_besthits: several species.
- add_diff_exp_color returns the data frame with a color column, and
  get_ppi_enrichment a list (p-value, edges, expected edges).
- load and load_all keep interactions at or above the threshold.
- interactions_example has 70000 rows; downloadAbsentFileSTRING no longer
  works.
- The class page describes every setting (including the 0-1000 score
  scale and protocol, which applies to downloads only) and every method,
  without placeholders or the nonexistent speciesList field.
 
Package: STRINGdb
Commit: 8b6f31c74b7e35b4a61dd1c55aa13c2a674a705a
Author: Damian <damian.szk@gmail.com>
Date: 2026-11-15 08:39:13 +0100
Commit message:

 Test: measure the job-id hint without the temporary path

test_values_ranks_single_waits_and_long_hint failed whenever tempdir()
was longer than 94 characters, because the hint names the file's path
twice. The length is now checked without the path, and the file is
removed in on.exit().
 
Package: STRINGdb
Commit: f2141f771b1beaceb84769b5901f26faf278e1c9
Author: Damian <damian.szk@gmail.com>
Date: 2026-11-15 08:39:07 +0100
Commit message:

 Fix five bugs: '#' in descriptions, homolog species, homology graph, clusters, http

- get_enrichment(), get_annotations() and get_geneset_description() read
  STRING's answers with comment.char = "", so a description that
  contains '#' is no longer cut there.
- get_homologs_besthits() sends every target species, separated by a
  carriage return; it used only the first one.
- get_homology_graph() filters on the bitscore (column 4) instead of the
  length of the second protein (column 9); remove_homologous_interactions()
  uses it.
- get_clusters() stops with the offered algorithms for any other value,
  such as 'spinglass', before downloading anything; its docstring is
  now first, so $help() shows it.
- With protocol = "http", API calls keep https: STRING's redirect drops
  the form data of every POST. The protocol applies to downloads only.

Each fix has an offline test.
 
Package: TiDEomics
Commit: 003930cd3cc00a30d7098a6ec4dea2b045108109
Author: Tianen He <tianen.he@ndm.ox.ac.uk>
Date: 2026-11-15 02:13:05 +0000
Commit message:

 v0.99.8, improve plots

Replace `geom_errorbar()` with `geom_linerange()` in `plot_trend()`, add padding to `plot_umap()`. Update NEWS.
 
Package: structToolbox
Commit: f1146cb927e711d3ebc5f056bbb4a31f2fb39e52
Author: Gavin Rhys Lloyd <grlloyd@users.noreply.github.com>
Date: 2026-11-14 21:49:14 +0000
Commit message:

 version bump 2.25.1 and update news
 
Package: structToolbox
Commit: c7b3ca6b9f329c8e4570df44d3127f7925e251b4
Author: Gavin Rhys Lloyd <grlloyd@users.noreply.github.com>
Date: 2026-11-14 21:48:38 +0000
Commit message:

 Merge branch 'devel' of https://github.com/computational-metabolomics/structToolbox into devel
 
Package: structToolbox
Commit: b6152b48a1fe3009dc8cb6a35679b393330e548a
Author: Gavin Rhys Lloyd <grlloyd@users.noreply.github.com>
Date: 2026-11-14 21:43:25 +0000
Commit message:

 fix pqn parameter passing (#70)

- pass sample_frac correctly
- pass ref_method correctly
- use computed_ref from M instead of param_list, because its an output not a param 
Package: LEA
Commit: 338b701abfa76176b8126489d957ed0b9faec85a
Author: Olivier Francois <olivier.francois@grenoble-inp.fr>
Date: 2026-11-14 17:49:46 +0100
Commit message:

 Add LFMM2 fit metadata and GEA spectral summary
 
Package: GExPipe
Commit: 0418c863d69a1237db3edeac673cefa566eb97dc
Author: SAFA RAFIQUE <safa.sandhu@gmail.com>
Date: 2026-11-14 21:10:41 +0500
Commit message:

 Sync with GitHub main: GExPipe 0.99.118
 
Package: LEA
Commit: 03c6e369f221a5b4a05a2f56a3d30723cb0bd691
Author: Olivier Francois <olivier.francois@grenoble-inp.fr>
Date: 2026-11-14 17:00:44 +0100
Commit message:

 Fix cross-platform LFMM reader fixture rounding test
 
Package: msPurity
Commit: 720cbbe8cb9567e2fe73a72f6b0d0a89abe173a8
Author: Ossama Edbali <ossedb@gmail.com>
Date: 2026-11-14 15:06:36 +0000
Commit message:

 fix(parquet): Keep generated identifiers unique

Identifiers were drawn after reseeding from the clock on every call. On
macOS the clock has microsecond resolution, so identifiers created in
quick succession repeated, and a repeated processing identifier replaced
an earlier history record and failed validation in CI.

Draw identifiers from a private stream seeded once per process, still
leaving the caller's random number stream unchanged. Bump the version
to 1.39.2.
 
Package: msPurity
Commit: d270aa0c97121161546f3ecc86d98fd0ced08c5b
Author: Ossama Edbali <ossedb@gmail.com>
Date: 2026-11-14 13:58:10 +0000
Commit message:

 Merge remote-tracking branch 'upstream/devel'

# Conflicts:
#	DESCRIPTION
 
Package: msPurity
Commit: b3cdb2dc47696e6bd0f9609a2e53a9e921a42302
Author: Ossama Edbali <ossedb@gmail.com>
Date: 2026-11-14 12:07:46 +0000
Commit message:

 chore(release): Bump version to 1.39.1

The unreleased 1.37.4 changes ship as 1.39.1. Rename NEWS to NEWS.md in
Markdown so news() and Bioconductor parse it, and add entries for the
processing history, filter parameter sets, export and matching fixes and
the new test data.
 
Package: msPurity
Commit: 331465c2f7b3c0de43dbada74fac448c1171355f
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-13 09:28:30 +0000
Commit message:

 feat(filtering): Add condition-specific parameter sets

Add FilterFragSpectraParam objects based on ProtGenerics::Param.
Assign complete settings through acquisition-metadata selectors, with
ordinary call arguments for unmatched spectra.

Reject conflicting assignments and retain the applied settings and
source peak positions in filtering results.
 
Package: msPurity
Commit: 0c3153561a2a8a9545c7ef372f9dc764e2ccfec5
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-13 09:28:12 +0000
Commit message:

 feat(processing): Record effective processing settings

Track repeated processing steps, resolved settings and input references
in purityA and extracted Spectra.

Preserve acquisition metadata and peak identities, record the inputs
used by averaging, and clear dependent results when inputs change.
 
Package: msPurity
Commit: 724768b5ed1235187df7c382c05853ce2318ec99
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-13 10:01:32 +0000
Commit message:

 fix(filtering): Preserve dimensions in flag_remove()

Keep per-class intensity and retention-time subsets two-dimensional
and combine non-reference validity flags with rowSums().

Add a regression for three-class XCMSnExp inputs with singleton
classes and both reference choices, using the existing fixture.

Fixes #102.
 
Package: msPurity
Commit: f3077a60f6880fa483bc3350dc783dcd9aac29b7
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-12 15:23:44 +0000
Commit message:

 ci: Preserve fixture line endings during checkout

Disable automatic LF-to-CRLF conversion before checkout so TSV
fixtures retain their committed bytes. This prevents trailing
carriage returns in SIRIUS annotation links imported by RSQLite.
 
Package: msPurity
Commit: a9e470bbb3af31f22eb91b7f9a8598cfa5c7fdaf
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-12 15:23:30 +0000
Commit message:

 test: Handle Windows line endings and source paths

Normalize Windows MSP line endings in the parity helper while
preserving content and line boundaries. Cover LF, CRLF and
doubled-carriage-return variants.

Reuse absolute-path detection in Parquet test setup and explicitly
record a missing source in the unresolved-source validation test.
 
Package: msPurity
Commit: c95ffb6e6f24ab6cfbe95679c98d7d7fc2b58291
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-12 15:23:20 +0000
Commit message:

 test: Allow rounding in calculated reference checks

Compare calculated purity and DIMS results with saved references
using a 1e-12 tolerance. Keep explicit spectrum identity,
saved-object and same-run comparisons exact.
 
Package: msPurity
Commit: 44e8bfc1a4df0e23c4e1ae8397e3fa5a7b74057d
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-12 11:38:19 +0000
Commit message:

 ci: Fix macOS linking and library downloads

Expose Homebrew OpenSSL libraries when compiling macOS dependencies.
Allow more time to download the reference library, retaining its checksum
verification.
 
Package: msPurity
Commit: 6fd45f5457ff9597b5f2a45f76b5d038571460b3
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-12 10:50:57 +0000
Commit message:

 ci: Update Bioconductor checks

Run checks on Linux, macOS and Windows with matching R/Bioconductor
versions.

Restore additional BiocCheck checks, with package-size checking disabled.
Disable coverage collection and uploads for now.
 
Package: msPurity
Commit: 583212ab6617f56f8408c41ce615b0854fce09b8
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-12 10:50:51 +0000
Commit message:

 test: Remove source-file bookkeeping test

The audit assumes an installed package contains its original R source
files, causing coverage runs to fail.
 
Package: msPurity
Commit: be433298a591f2863c21a6c9258dd21ab26d7744
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-11 22:11:13 +0000
Commit message:

 Merge pull request #125 from computational-metabolomics/d04-matching-peak-eligibility

fix(matching): Keep fragment-peak selection within tolerance 
Package: msPurity
Commit: 6d0b4a453a0b48f4c16b847af518b2d916734a98
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-11 15:24:23 +0000
Commit message:

 fix(matching): Keep peak matches within tolerance

Resolve intensity and mass-error ties using only eligible, unused
reference peaks.

Share the selection between current and deprecated matching, with tests
for peak pairings and SQLite/Parquet scores.
 
Package: msPurity
Commit: 0903745da6721434a3de613f731409dfc5fa91f4
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-11 14:52:57 +0000
Commit message:

 Merge pull request #124 from computational-metabolomics/d03-spectrum-identities

fix(export): Preserve spectrum identities and metadata 
Package: msPurity
Commit: b995ea9acf146854c1307fdfca9f5396243ba238
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-11 13:22:05 +0000
Commit message:

 fix(export): Prevent duplicate seqNum columns

Check spectrum positions before combining purity results and keep one
seqNum column.

Read repeated metadata fields once so affected saved objects export to
SQLite and Parquet without manual column removal.
 
Package: msPurity
Commit: efbd52d22ed816801927f82b061a456ee58debc0
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-11 13:21:32 +0000
Commit message:

 fix(spectra): Assign peaks to the correct spectra

Use file and spectrum position for raw peaks, and check stored spectrum
types when selecting peaks for an average.

Keep filtering flags with the correct spectrum and create empty tables
without rereading raw peaks. Add a warning class for historical identity
conflicts and update regression references. Require testthat 3.2.0 for
namespace mocks.
 
Package: msPurity
Commit: 17ebc1c0a4a649e5bc226973c6c99707ebedb1b4
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-11 13:14:36 +0000
Commit message:

 Merge pull request #123

test(data): Add MS¹ and MSⁿ standard datasets 
Package: msPurity
Commit: b6811e5a01cdeb5dcf18f5d28c2f113348b3c044
Author: Ralf Weber <RJMW@users.noreply.github.com>
Date: 2026-11-11 08:56:16 +0000
Commit message:

 test(data): Add tryptophan and kynurenine standards

Store four reduced mzML.gz files covering MS1-only and MS1-MS4
acquisitions.

Test import, parent relationships, peak detection, grouping and the
existing MS2 workflow. Declare BiocParallel for serial test execution.
 
Package: msPurity
Commit: 2ca5cc40f9153b20c0bedc7642252395b145c121
Author: Ossama Edbali <ossedb@gmail.com>
Date: 2026-10-09 21:02:19 +0100
Commit message:

 Add Parquet output, deprecate SQLite and move onto Spectra containers

msPurity can now write its results as a Parquet dataset following the
mzStack specification, as well as SQLite. SQLite stays the default, but
every SQLite write raises a deprecation warning and its output is
otherwise unchanged, which golden dumps in the tests confirm. Raw data is
read through Spectra instead of mzR, with identical results.

- createDatabase(), spectralMatching() and combineAnnotations() take
  format = "parquet". Averaged spectra become native runs readable by
  MsBackendParquet, with their member scans, features, peaks, abundances,
  evidence, scores, coverage and provenance in results tables.
- New exported functions: convertSqliteToParquet(),
  convertLibraryToParquet() for msp2db and MSP libraries or a Spectra
  object, validateParquet() and parquetCapabilities().
- Matching on Parquet gives the same scores as on SQLite and is much
  faster against the full default library; inst/benchmarks has the
  script and results.
- arrow and jsonlite are suggested, not imported. The spec schemas and CV
  terms are vendored in inst/parquet.
- mzRback is deprecated. Spectra, MsExperiment, BiocGenerics, S4Vectors
  and IRanges move to Imports and MsBackendMsp is suggested.
- purityA gains spectra, fragSpectra, avSpectra and params slots.
  purityA() accepts Spectra, MsExperiment, XcmsExperiment and Parquet
  datasets and reads each file once. frag4feature() and createDatabase()
  accept XcmsExperiment objects.
- frag4feature(), filterFragSpectra(), the averaging functions and the
  writers work from the Spectra slots, with each linked scan stored once.
- purityD gains avSpectra and experiment slots and accepts an
  MsExperiment. msfr CSV peak lists are read through Spectra.
- New accessors purityTable(), groupedSpectra(), allFragSpectra(),
  averagedSpectra() and averagedPeaks() return the legacy shapes or
  Spectra. options(msPurity.legacySlots = FALSE) leaves the legacy slots
  empty with identical outputs. updateObject() converts saved objects.
- allFragSpectra() names the scan of every peak correctly. The legacy
  all_frag_scans table and the SQLite output keep the old pid numbering.
- Fix averaging after filterFragSpectra(rmp = TRUE), and createMSP(method
  = "max") with one passing peak or a scan linked twice.
- Add parity references, tests and a purityA memory benchmark, and merge
  the 1.37.4 NEWS entries into one section.
 
Package: limma
Commit: 54cecff4280a0fbddcc00ffc1ad45c1e01d66a2b
Author: Gordon Smyth <smyth@wehi.edu.au>
Date: 2026-11-14 20:00:37 +1100
Commit message:

 limma 3.99.5
- Add github ULR to DESCRIPTION.
- Update limma-Tests.Rout.save for new org package.
 
Package: edgeR
Commit: 068beb6ee334ef14ae5956edcf5ec1b35863a825
Author: Gordon Smyth <smyth@wehi.edu.au>
Date: 2026-11-14 19:39:23 +1100
Commit message:

 edgeR 4.99.13
- Swap URLs in DESCRIPTION.
- Add Dong et al (2026) reference to diffSplice.Rd.
 
Package: PostChicago
Commit: 169adbfc3d3bacf5a0bf60a7915b63d55f1a04f5
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-14 01:39:40 +0100
Commit message:

 revision. improving vignette and functions
 
Package: PostChicago
Commit: f797a7d69aa641ee9258552bd31cdc4bb73455f4
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-13 18:18:37 +0100
Commit message:

 Add files via upload 
Package: PostChicago
Commit: ee0f56c086709177b66c1157ab3eb8ade117b233
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-13 18:17:56 +0100
Commit message:

 Delete vignettes/PostChicago_v26.Rmd 
Package: PostChicago
Commit: 6ee379840f36dfc2ca1bffbd60b6b54720d2a5bd
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-13 16:45:23 +0100
Commit message:

 Add files via upload 
Package: PostChicago
Commit: f4a7a193e29c130881043b5d6751bcf3c339b814
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-13 15:42:41 +0000
Commit message:

 Delete vignettes/PostChicago_v25.Rmd 
Package: PostChicago
Commit: bd216a49e472be7c1932af648dbce0b4b65941a1
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-11 23:44:49 +0100
Commit message:

 Add files via upload 
Package: PostChicago
Commit: 56b3d888337f4c0488e5a93aa03344b0c5b1aca5
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-11 23:44:11 +0100
Commit message:

 Add files via upload 
Package: PostChicago
Commit: e922086c0687510dc27e4111178ab26e2670ea34
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-11 23:43:02 +0100
Commit message:

 Add files via upload 
Package: PostChicago
Commit: 99e4aa7b265030351a730b8e48f9cd1f0deeb638
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-11 23:41:49 +0100
Commit message:

 Add files via upload 
Package: PostChicago
Commit: f95a45f1762f9f0d9d29adb8b9551b70a069059c
Author: Angelika Feldmann <angelika.feldmann@dkfz-heidelberg.de>
Date: 2026-11-11 23:40:33 +0100
Commit message:

 Add files via upload 
Package: PostChicago
Commit: 0ac0c6e6729bae418d42bd12340b6344f8a97460
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-11 23:38:25 +0100
Commit message:

 Delete NEWS.md 
Package: PostChicago
Commit: 369e9c666568f649db9d73eca3f33c3717f34dc5
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-11 23:38:14 +0100
Commit message:

 Delete NAMESPACE 
Package: PostChicago
Commit: a95b2b61a9085ad5de925aaafdd357939ae0b6ef
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-11 23:38:04 +0100
Commit message:

 Delete DESCRIPTION 
Package: PostChicago
Commit: e8efb2f7bee318e4b6589a6dddbfb349c8c3e027
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-11 23:37:50 +0100
Commit message:

 Delete vignettes directory 
Package: PostChicago
Commit: 7702d3826cabc452b6b3d5ad8f43dcc415f5231d
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-11 23:37:38 +0100
Commit message:

 Delete man directory 
Package: PostChicago
Commit: 459ab461f9e1e5c05a2a637ca365cdf45a6983ab
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-11 23:37:27 +0100
Commit message:

 Delete inst directory 
Package: PostChicago
Commit: 256c7e88e48c0502059dc7c3e6e82f520643aa14
Author: Angelika Feldmann <angifeldmann@gmail.com>
Date: 2026-11-11 23:36:59 +0100
Commit message:

 Delete R directory 
Package: BiocCheck
Commit: f184b1a40a4c9fcc23997c320ceab606b65bca7c
Author: LiNk-NY <marcel.ramos@sph.cuny.edu>
Date: 2026-11-13 17:01:31 -0500
Commit message:

 Use the Bioconductor reusable CI workflow

Replace basic_checks.yml and test-coverage.yml with ci.yml, the
Bioconductor/workflows template. It calls the shared bioccheck.yml
workflow, which runs R CMD check and BiocCheck in the Bioconductor
container and uploads coverage to Codecov with the existing
CODECOV_TOKEN secret.

Leave 'master' out of the CI branch lists, since Bioconductor's default
branch has been 'devel' since 2023, and use 'main' instead of 'master'
in the test package's example GitLab URL. The upstream template still
lists 'master'; see Bioconductor/workflows#41.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: GDSAnnotator
Commit: 6f36b76f436271fd28802879f7e2e9baac3a1e3f
Author: Xiuwen Zheng <zhengxwen@gmail.com>
Date: 2026-11-13 15:38:31 -0600
Commit message:

 update
 
Package: MetaboAnnotatoR
Commit: 5dd9f57fdfcbee333812a62e592bbbfef2630a28
Author: Goncalo Graca <ggomesda@ic.ac.uk>
Date: 2026-11-13 20:58:54 +0000
Commit message:

 function to re-annotate AIF and ISF objects
 
Package: MetaboAnnotatoR
Commit: 2dfde36afa143e2683915ba95a113468490c4020
Author: Goncalo Graca <ggomesda@ic.ac.uk>
Date: 2026-11-13 20:58:40 +0000
Commit message:

 function to re-annotate AIF and ISF objects
 
Package: MetaboAnnotatoR
Commit: ba5c25c9d0799102ab159809033c5f639019fed6
Author: Goncalo Graca <ggomesda@ic.ac.uk>
Date: 2026-11-13 20:57:45 +0000
Commit message:

 updates
 
Package: MetaboAnnotatoR
Commit: 0621f027303e5894cebd7621cafcb7714594ac10
Author: Goncalo Graca <ggomesda@ic.ac.uk>
Date: 2026-11-13 20:55:01 +0000
Commit message:

 new version bump
 
Package: RNAseqCovarImpute
Commit: 788de091d7e71e4b2e06efe9defe1b0fe247bb3e
Author: Brennan Baker <brennanhilton@gmail.com>
Date: 2026-11-13 11:44:37 -0800
Commit message:

 Update regression test for mice 3.20.0
 
Package: DuckDBSpatial
Commit: 1553c93227f2ef10e21277f4409e1e3097fc8efa
Author: Patrick Aboyoun <aboyoun.patrick@gene.com>
Date: 2026-11-13 11:17:55 -0800
Commit message:

 Write an explicit null crs for an unknown CRS in writeGeoParquet()

The GeoParquet spec treats a missing "crs" key as OGC:CRS84 and spells
"unknown" as an explicit "crs": null. writeGeoParquet() omitted the key
when st_crs(x) was NA, so readers labeled coordinates with no CRS (e.g.
spatial omics tissue coordinates) as WGS84 lon/lat, which then altered
axes in plots and geometric operations.

An unknown CRS, or one PROJJSON cannot represent, is now written as
"crs": null and reads back as NA. The append = TRUE CRS check likewise
distinguishes a missing key from an explicit null, so a known CRS can no
longer be appended to a file whose CRS is unknown. jsonlite needs
null = "null" to emit the null; its default writes [{}].

An existing test asserted that an unset CRS round-trips to the CRS84
default rather than NA; it now expects NA. Files written by earlier
versions have no "crs" key and still read as CRS84.
 
Package: HDF5Array
Commit: 41a36e903126c6ce13a5d709ca6b6513c1e082f8
Author: Hervé Pagès <hpages.on.github@gmail.com>
Date: 2026-11-13 10:38:00 -0800
Commit message:

 HDF5Array 1.41.6: Add 'type' argument to H5SparseMatrixSeed() constructor

The new optional 'type' argument lets the user specify the desired type()
of the object to construct. Its default value is NA, in which case the
type() of the returned object will be inferred from the H5 datatype of
the HDF5 dataset.

All the other matrix-oriented constructors, that is, H5SparseMatrix(),
TENxMatrixSeed(), TENxMatrix(), H5ADMatrixSeed(), and H5ADMatrix(), also
get the new 'type' argument.

Note that the HDF5ArraySeed() and HDF5Array() constructors have had this
argument for many years but it was never added to the matrix-oriented
constructors until now.

This commit also addresses an inefficiency of the type() getter that was
reported by Robert Castelo here:

  https://github.com/Bioconductor/HDF5Array/pull/71

The approach we use in this commit is slightly different from what the
above PR is proposing, but the idea remains the same. The commit adds
the 'type' and 'natural_type' slots to the H5SparseMatrixSeed class, as
well as a type() method for H5SparseMatrixSeed objects that gets the type
from the new slots. It overrides the default type() method (defined in
the S4Arrays package) which was getting the type() by accessing the HDF5
file each time type() is called, so is a lot more efficient.
 
Package: MSstatsResponse
Commit: 3dd2133c18f2503632beb6fa6ffa054778fd62ba
Author: Sarah Szvetecz <szvetesa@gmail.com>
Date: 2026-11-13 14:04:38 -0500
Commit message:

 Bump version from 1.3.5 to 1.3.6
 
Package: MSstatsResponse
Commit: 9bae8159dd5f5e9df579486d9da814347966ecd6
Author: Sarah Szvetecz <szvetesa@gmail.com>
Date: 2026-11-13 13:55:13 -0500
Commit message:

 remove unused f_test_isotonic call
 
Package: MSstatsResponse
Commit: 85b73db610066b1321f8fea606cd38eb0f1999c5
Author: Sarah Szvetecz <szvetesa@gmail.com>
Date: 2026-11-13 13:54:21 -0500
Commit message:

 fix doseResponseFit crash on undefined F-statistic

* fitIsotonicRegression returns NA (not NaN) F/P when residual df is 0
  (one observation per dose) or there is only one dose level
* doseResponseFit(increasing = "both") now picks direction NA-safely
* Added tests for both cases
 
Package: decontX
Commit: c2b72ffe544b9d475bd85c0491b2bd453a89ae11
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-13 13:34:37 -0500
Commit message:

 Merge pull request #132 from campbio/fix/decontpro-docs

Rewrite the decontPro vignette and complete its help page (#83 part 2) 
Package: decontX
Commit: dad175066563938c202b982ad51f7fe9d7afdaee
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 11:00:19 -0500
Commit message:

 Record follow-ups #129 and #131 for the decontPro docs (#83)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ebcfe99c040c33594e5f6347acdfcecce06707f0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 10:02:05 -0500
Commit message:

 Use 5x priors and expand the decontPro introduction (#83)

At hand-off the maintainer found the 3x tuned fit too weak. 5x priors
remove most of the low CD8 peak while keeping the CD4 monocyte peak, and
still agree with the full-data defaults (log1p correlation 0.989). The
introduction now says where ambient and background contamination come
from, following Yin et al. 2024, and how the model splits each count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 1f6aab65c626f5950b286a3298a8ea999e462d93
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 08:58:00 -0500
Commit message:

 Give decontPro's real run times in the vignette (#83)

The earlier times came from a debug build: `R CMD INSTALL .` had reused
the -O0 objects that load_all() leaves in src/. On a clean install a
500-droplet fit takes 5 to 10 s and the full data about 2 minutes; the
results are identical. The spec records the correction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 28eb394a2680a7b37584dc39127e8ae4134ee7b2
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 07:30:14 -0500
Commit message:

 Address the code review of the decontPro docs (#83)

p_est takes its names from the matrix it is computed from, which may be
`background`; drop "any number of droplets" (an empty background fails
in Stan); tell template users to import both matrices from the same
sample directory so barcodes match; describe the box plot without exact
values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 9fabf6590b0fcf65f0868a9042f9488a0cbf2b96
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 07:28:14 -0500
Commit message:

 Record decisions from the decontPro docs reviews (#83)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 5c8b3b8bbf0581825daa01981b48094fb3a9090e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 07:28:14 -0500
Commit message:

 Address the novice-reader review of the decontPro vignette (#83)

Rename objects so `counts` no longer shadows counts() in the template,
comment every chunk, show the sampled cell-type counts, define priors and
called cells, state the prior defaults, say what the box plot should
show, match the CD4 text to the plot, fix delta_est's description, and
mention the temporary Stan file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 8b2a44baca28080d25ef08748ee70112f6aa1f6d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 07:28:14 -0500
Commit message:

 Describe delta_est as the ambient profile's weight (#83)

The spec review found ?decontPro called delta_est the ambient share of
the non-background counts; in the model it is the weight of the ambient
profile against the native profile. Also note p_est is named only when
the counts have row names, and reflow the background paragraph.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c1dedad480fcc1ed0d8feb83891fda542cdd2ca3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-13 07:20:21 -0500
Commit message:

 Tune decontPro's vignette priors 3x, not 10x (#83)

A fit on all 7,700 labelled cord_blood droplets showed the 500-droplet
sample with 10x priors over-corrects (CD4 monocyte peak removed; log1p
correlation 0.86 with the full-data defaults), while 3x priors match the
full-data defaults closely (0.99). The vignette now uses 3x, keeps 10x
as the over-correction example, notes that cell types with few sampled
droplets are estimated poorly, and gives the measured run times (#130).
The spec records the change; NEWS no longer claims an example time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6c9dfb8f8da325d984c5e9ec36d9c6a9802585db
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:01:04 -0500
Commit message:

 Use a list for decontPro's parameters in the vignette (#83)

A pipe table can't wrap at 80 columns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: eadcfb56d752cad9e6c09087380ec87f9a726573
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:00:57 -0500
Commit message:

 Add NEWS for 1.11.34 and mark #83 done on the ROADMAP

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 2ea018fdaf5683285e73c6a7fe31cde000b0ee7d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:00:57 -0500
Commit message:

 Rewrite the decontPro vignette and drop dplyr from Suggests (#83)

The vignette now uses cord_blood's bundled cell types on 500 droplets
(downloading 0.3 MB instead of 23 MB, no Seurat or dplyr), explains
every output, tunes the priors with before/after density plots, gives an
unrun `background` template, and adds runtime, reproducibility, a FAQ
and the citation. verbose = FALSE keeps Stan's progress off the page
(A7-03 to A7-05, A7-19). No other file used dplyr, so it leaves Suggests
(recorded in the spec, by the maintainer's choice, instead of an ADR).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: a55ea18145da6202331c0dea54213720ea45c5fa
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:00:57 -0500
Commit message:

 Document every decontPro output and shrink its example (#83)

?decontPro now lists the four returned elements and the eight parameter
estimates with their dimensions, and says only the ADT totals of
`background` are used, so it must hold empty droplets (A7-11). The
example is a seeded 10 x 8 matrix with named arguments and the default
priors, instead of an unseeded 100 x 10 one (A7-23).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 94bbf4612e741f05407cc0e4496b37c8fb822980
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 15:55:13 -0500
Commit message:

 Add the spec for the decontPro docs (#83 part 2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: cfcc83f451096c5814b4ca826de30d2641dd2bc7
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-12 15:38:27 -0500
Commit message:

 Merge pull request #128 from campbio/fix/decontpro-arguments

decontPro: camelCase arguments, background, iter/seed/verbose (#81) 
Package: decontX
Commit: 54fcb440cf24c8e025897c8f2aeb06e90def0547
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 21:17:43 -0500
Commit message:

 Move the rstan::vb() call into its own helper (#81)

.callStanVb() grew past BiocCheck's 50-line limit with the capture and
cleanup code; .runStanVb() now holds the fit itself, keeping the count of
long functions at 13.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 0c7fccb45df619524f5eabb734355c61f8a245b0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 21:09:43 -0500
Commit message:

 Address the code review of the decontPro arguments (#81)

verbose = FALSE now also silences the "Dropped ADTs" log of the background
matching. A single number given as background, the old partial match for
background_sd, stops with a hint to use backgroundSd. The both-names error
says a positional value fills the camelCase argument, and the quiet failure
error no longer points at a message that may not exist. background is read
with [[ so it can never partially match backgroundSd.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: da69e72d3359f02f371504bdb63918872f83140c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 21:05:46 -0500
Commit message:

 Address the spec review of the decontPro arguments (#81)

Unknown arguments are reported before anything in ... is evaluated, as
before this branch. iter is capped at .Machine$integer.max, an empty Stan
log prints no blank message, and the tests pin output_samples, pars and
the CSV being written before it's deleted. NEWS names the two old call
forms that now error; the spec and ADR say where quiet-failure output goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 59314363b4389ee1745bcfff267dcfbcfa620107
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 21:00:02 -0500
Commit message:

 Rename decontPro's arguments and expose its fit controls (#81)

decontPro's arguments become camelCase (cellType, deltaSd, backgroundSd,
background), matching decontX. The snake_case names stay as permanent
aliases, read from ... by one helper; giving both names is an error, and
errors name the argument as the user gave it. The generic dispatches on
filtered_counts only, so the cell_type alias works.

iter, seed and verbose come after ..., with today's hard-coded values as
defaults, so results are unchanged. verbose = FALSE captures Stan's output
and shows it with message() only when the fit fails. rstan's CSV goes to
a tempfile that is deleted when the fit ends (A5-08). The help documents
the priors as SDs (A4-14).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 79149bbd7179cfa20ff7f507540e548056f90dea
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:54:48 -0500
Commit message:

 Accept ADR-0006 and add the decontPro arguments spec (#81)

The maintainer settled the open points on 2026-11-11: filtered_counts
keeps its name, the quiet option is verbose = TRUE, iter and seed keep
today's defaults, aliases go through one helper, and output_samples is
not exposed because the draws never change decontPro's results.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f7527bad9713c5daf968dd548908ee036cdafa07
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-11 20:14:20 -0500
Commit message:

 Merge pull request #127 from campbio/fix/decontx-docs

decontX vignette rewrite, FAQ and citations (part 1 of #83) 
Package: decontX
Commit: b25e7fc4a595610c7a8a520d43ef1f5cd14d0e2a
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 18:24:53 -0500
Commit message:

 Drop #40 from the planned decontPro FAQ (#83)

Maintainer decision: no FAQ entry on decontaminated counts that look
higher in either vignette.

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 4dbbd5c528d0f3c5777e6ce468b34d022e3d109e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 18:22:53 -0500
Commit message:

 Restructure the decontX vignette per maintainer review (#83)

- Drop the FAQ entry on decontaminated counts that look higher (#40).
- Split "Running decontX" into runs without and with the background
  matrix. The second shows how to import the raw matrix (moved from
  "Importing data") and holds what was the background FAQ.
- Multiple samples (#45) is its own section under "Other important
  notes", after "Working with Seurat", which now comes first.
- The note on reproducing older results is a block quote.
- NEWS, ROADMAP and the spec follow.

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 957d986e7d3f1a05eba9c48e97f87fe7cc509b1d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 16:48:23 -0500
Commit message:

 Address the code review of the vignette FAQ (#83)

- The hand-written mapping example no longer claims to match the
  printed clusters, which can vary.
- background: duplicated row names stop a run when the names differ
  between the matrices (.checkBackgroundNames()); suggest gene IDs or
  make.unique().
- The one-cell-type example skips the UMAP with embedding = FALSE.
- Separate runs per sample give the same estimates and counts as one
  run with batch, but labels without the sample prefix, and each run
  needs its own sample's empty droplets.

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 7b5163cf6903ac89dd4a95fd1e9e2933c75fb926
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 16:43:02 -0500
Commit message:

 Address the vignette and spec reviews (#83)

- The batch FAQ says the prefix is all or nothing: if any z label is in
  more than one sample, every label gets its sample (R/decon.R:495-498).
- background: genes are matched by name only when both matrices have row
  names; otherwise by position.
- Hand-written mapping examples use the clusters the vignette prints.
- Normalization in one step per line, with a sentence on why; the NK
  markers come from the markers list; library(Matrix) is explained.
- The delta plot has clear axis labels and a sentence on reading it;
  all_cells is explained.
- FAQ wording: "as in log-normalization"; the positive-difference hint
  applies to matrices from different objects.
- Seurat section: round the counts before CreateAssayObject(), as the
  text says, and fix "can be also be". Typos and grammar elsewhere.
- ROADMAP: part 1 recorded under Done; III-a now lists part 2.

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 56eeeacbbf3ca4cb8506e0ab5811754302867512
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 16:38:41 -0500
Commit message:

 Map clusters to cell types by average marker count (#83)

In PBMC4k, the monocyte markers are detected in every cell of two
clusters (1, the monocytes, and 6, nine cells), so picking the cluster
with the highest detection rate depended on cluster order. The average
marker count separates every cell type by at least 5-fold. The vignette
now says why detection alone isn't enough: the monocyte markers are a
large part of the ambient RNA. The spec records the change.

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 057911ffeef4f8e8f9c709d89cb30bd116312adf
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 15:59:35 -0500
Commit message:

 decontX vignette: mapping code in view, one clustering run, FAQ (#83)

- Show the code that maps clusters to cell types, after a barplot by
  cluster, instead of building it in a hidden chunk (A7-01).
- Plot the marker UMAPs with one call per marker instead of an lapply
  closure (A7-09).
- The delta example reuses the first run's clusters with
  embedding = FALSE, so the clustering runs once (A7-06).
- Contamination is a proportion (A7-08).
- A FAQ for #40, #43, #44 and #45 (A7-07, A8-03). Running each sample
  separately was checked to give identical results to one run with
  batch, on simulated data with and without z.
- A citation section (A7-12), chunk labels, wrapped lines and typos
  (A7-19, #57).
- NEWS for 1.11.32, and part 1 of #83 in the roadmap.

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ef10b8ed39cc5860cf1adf49e1c4488b8f5036fe
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 15:44:12 -0500
Commit message:

 Citations and usage in the README and DESCRIPTION (#83)

- README: a Usage section with a runnable example on simulated data,
  and a Citation section with both papers (A7-20). README.Rmd has no
  evaluated chunks, so README.md is updated to match by hand.
- DESCRIPTION: Title in title case, <doi:> links for both papers
  (A7-21), and the version goes to 1.11.32 (PR #126 holds 1.11.31).
- AGENTS.md: DecontPro is Yin et al. 2024 (A7-14).

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 786a6337f0ad3cb8d7068357f4f04c196b184183
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 15:43:40 -0500
Commit message:

 Fix roxygen docs and add a decontXcounts example (#83)

- decontX() and plotDecontXContamination(): contamination is a
  proportion between 0 and 1, not a percentage (A7-08).
- simulateContamination(): the delta default is c(1, 10), and @return
  lists every element (A7-10).
- decontXcounts(): a runnable example (A7-15, #57).
- retrieveFeatureIndex(): state the defaults of by and exactMatch, fix
  the regex link, and make the example deterministic and warning-free
  (A7-18).
- Package help page: references for both papers, and pointers to the
  vignettes and citation() (A7-12).

Part of #83.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 34c8f67ff45dabadbdfed2523047bef38d902a01
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 15:41:53 -0500
Commit message:

 Add the spec for part 1 of #83 (decontX docs)

Part 1 covers the decontX vignette, its FAQ, citations, roxygen fixes,
README and DESCRIPTION. Part 2, the decontPro vignette rewrite, waits
for #81.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: a04f0f714c80a7766a389d685519b5b7ef9e300c
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-11 15:45:06 -0500
Commit message:

 Merge pull request #126 from campbio/fix/plot-feature-inputs

Check features and cell_type in plotDensity and plotBoxByCluster 
Package: decontX
Commit: 3a45c60bfca6a532749b479be3cde5af3011f27f
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 15:29:55 -0500
Commit message:

 Note and test that features must be names, not row numbers

as.character(features) makes row numbers fail with "not found" instead
of selecting rows by position. The docs always said names; NEWS now
says so and a test pins it (code review of #122/#123).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: e7dfbb3649309befd0e716435e3e34a0a871b660
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 15:13:15 -0500
Commit message:

 Bump to 1.11.31, add NEWS and mark #122 and #123 done in the roadmap

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b07cce76eb134b78acec2675f337793c9f3a6ef3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 15:13:15 -0500
Commit message:

 Check features and cell_type in plotDensity and plotBoxByCluster

A factor feature indexed the matrix by its integer code, plotting the
wrong row; a cell_type of the wrong length was recycled silently or
failed in data.frame(); empty features failed only when printed; and an
unknown feature gave a bare "subscript out of bounds". .plotEachFeature()
now matches features by name and stops, naming the argument, when they
are empty or not rownames of both matrices; plotBoxByCluster() stops
unless cell_type has one entry per droplet (#122, #123).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6cc7543bb39bcc7a527e0111fb1848cc254a6d84
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-11 14:44:42 -0500
Commit message:

 Merge pull request #124 from campbio/fix/plot-feature-helpers

Share the repeated code in plotDensity() and plotBoxByCluster() (#119) 
Package: decontX
Commit: 47d7affe13ac7729f1327814054e9f14eb157cf2
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:28:00 -0500
Commit message:

 Pass cellType by name to .plotEachFeature (#119)

Spec review nit: clearer than a positional argument after the closure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f31ebf25f96ebeb6f912d373db468288698bc40c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:25:56 -0500
Commit message:

 Bump to 1.11.30 and mark #119 done in the roadmap

No NEWS entry: an internal change with the same plots, as in 1.11.27.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: eedd5071c878b30000ca745994d12438e92e8792
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:25:51 -0500
Commit message:

 Share the repeated code in plotDensity and plotBoxByCluster (#119)

The per-feature loop, the pseudo-log scale, the fill scale and the
patchwork assembly and output move into internal helpers. Each function
keeps its own geom, labels and theme. The built plots are the same as
before; only the call ggplot2 records for the pseudo-log scale differs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: bcd3aa7ebafe5d157b82750ad6727fcdf3cdc1b6
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:23:26 -0500
Commit message:

 Pin the scales and layout plotDensity and plotBoxByCluster share (#119)

A characterization test before moving their shared code into helpers:
fill colours and labels, pseudo-log scale and breaks, the density's
y cap, patchwork columns, collected guides, legend and margins.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: bbb873d8ccf38f66cac399359f48e8f4d42a2090
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-11 06:56:55 -0500
Commit message:

 Merge pull request #121 from campbio/fix/decontpro-split-memory

Lower the memory decontPro uses to split the counts (#111) 
Package: decontX
Commit: 48864fb5967db08c2e7fa363e0b0e87e9619927c
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-10 21:29:13 -0500
Commit message:

 Merge pull request #120 from campbio/fix/decontpro-single-input

Require at least 2 ADTs and 2 droplets in decontPro() (#110) 
Package: decontX
Commit: 0782534163d730fadbb987237ce421b42356431d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:50:56 -0500
Commit message:

 Keep the counts' dimnames first in decontPro's split (#111)

From the code review: R takes dimnames from the first operand that has
them, so put counts_per_rate first in each split; the outputs no longer
depend on the Stan estimates having no dimnames. Also use p_est, make
the comment say what is freed, and state the result change as about
1e-16 (a measurement, not a bound). Bit-identical to the previous commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: a1f3acadfb4ce0d358fac63ff132b12007cf44b0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:43:06 -0500
Commit message:

 Drop a commit hash the rebase made stale from the #111 spec

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6846be3983b45cc5fa3774b85faddbb5b17ab71b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:42:07 -0500
Commit message:

 Bump to 1.11.29, add a NEWS entry and mark #111 done in the roadmap

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 2141367c654af09d3e66393d2034db124824fc93
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:42:06 -0500
Commit message:

 Add the spec and measurements for #111

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c8d3810e413ac38d068ed0d36adf2723f146f3c4
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:38:18 -0500
Commit message:

 Split decontPro's counts without the droplet totals (#111)

Each of a droplet's three rates carries its total count as a factor,
which cancels in the shares, so the split no longer builds the N x M
scaling matrix or the ambient profile matrix. One counts / total matrix
is shared by the three splits, and intermediates are freed as soon as
they're used. Results move by under 1e-15 (relative). drop = FALSE keeps
the native profile a matrix for any shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 5c32876fd60095785fc8793d15774fed0490dbc8
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:42:31 -0500
Commit message:

 Reword the #110 check's comment and reflow its roxygen

With one droplet the model still has a contamination to estimate; the
reason for the check is how rstan passes length-1 data to Stan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b96a95737d825bdc81019d52c50e8133b91a3529
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:35:43 -0500
Commit message:

 Record #110, #111 and #119 in the roadmap

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 7351ae617e4b93801cb56b4804ecc24acc23bde3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:35:43 -0500
Commit message:

 Bump to 1.11.28 and add a NEWS entry for #110

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6d2c650a7684bd1e1871c4ea7afc118ecf0ed633
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:35:43 -0500
Commit message:

 Require at least 2 ADTs and 2 droplets in decontPro() (#110)

rstan passes length-1 data to Stan as a scalar, so a single ADT or
droplet failed inside Stan with a mismatched-dimensions message. The
model also has nothing to estimate in either case, so stop up front
with a message that names the counts' size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d7c161c29eca4d5f840c3a801c4a4fba4e9614e2
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-10 16:22:12 -0500
Commit message:

 Merge pull request #118 from campbio/fix/quality-items

Small code quality items from the deep review (#116) 
Package: decontX
Commit: a4e2528747dc048ba54ebd495021986122368f55
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-10 08:25:31 -0500
Commit message:

 Merge pull request #117 from campbio/fix/scrapper-floor

Raise the scrapper floor to 1.5 and remove code tests can't reach (#115) 
Package: decontX
Commit: ca46e327c0c5b595b362fc8820687a97fb9850e2
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 08:07:26 -0500
Commit message:

 Say in the roadmap that A4-11's density/box-plot half is still open (#116)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 9efe8b89ece8cc09f9b3e4391f524b54ee3ad483
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 08:07:26 -0500
Commit message:

 Subset the SCE once in .markerPlotData() and tidy its test (#116)

From code review: the subset was rebuilt for every assay, and the test
drew each matrix plot twice under a name that shadowed plot().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ab8cbe54da82be07f613b99de429af0660b4d9bb
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 08:04:48 -0500
Commit message:

 Follow the helper renames in the benchmark's phase rules (#116)

profilePhases() matches stack frames by exact name, so the old names
would have put init and Stan time in the wrong phases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 3236e626b7ff3b4a7095de62560c22a0c08e448b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 08:00:43 -0500
Commit message:

 Tidy the wording of ADR-0010's context (#116)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 968d890a1586bcee2fbaaa09e9542e8d33ea3052
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 08:00:34 -0500
Commit message:

 Record the base imports in ADR-0010 and the roadmap (#116)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 87147f76bad8bfddb2fcdf042c685ae7729ebd2c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 08:00:34 -0500
Commit message:

 Declare stats, grid and utils in Imports (#116)

The code already calls them with '::'; DESCRIPTION now lists them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 9766cf9cde12892392f15870c5e10be19ae7dffd
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 08:00:11 -0500
Commit message:

 Attach decontPro's roxygen block to its generic (#116)

The block ended in a stray NULL, and a separate '#' NULL' block
documented the generic. Attaching the block to setGeneric() gives the
same help page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 377e2bd2946ee838be5b7f55b116224107a9a003
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:59:45 -0500
Commit message:

 Share the marker plots' per-assay loop in .markerPlotData() (#116)

plotDecontXMarkerPercentage() and plotDecontXMarkerExpression() repeated
the same SingleCellExperiment-or-matrix split and assay loop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 8b8e2dcfc7767b3d6f406ddea0f435d334c46dca
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:59:45 -0500
Commit message:

 Pin how the marker plots stack assays and set the legend (#116)

Passes on the current code; guards the shared helper that follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: cadb409f9e7281c4d199dafaae3b6879621182e3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:59:45 -0500
Commit message:

 Use seq_len() and sample.int() in the simulation (#116)

sample.int(n, ...) draws the same values as sample(seq(n), ...), so the
simulated data are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: fa90ee8ee7185883691f720fb3af96b2d88fe59c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:57:51 -0500
Commit message:

 Bring internal helper names in line with the package's camelCase (#116)

Fixes the 'Inupt' typo, the lower-case x in .decontxInitializeZ*, and
the snake_case Stan helpers. Renames only; R/celda_functions.R is
untouched.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 2d051d50b2099eea98b5b3c61cf627252ea0d493
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:12:28 -0500
Commit message:

 Date scrapper's seed split right and mark ADR-0002's check superseded (#115)

The split shipped in scrapper 1.4.0 (Bioc 3.22), not 1.5. The ADR
README asks for the older ADR to be marked when a new one replaces part
of it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 8984b552d134440c42a412b9b67f9055cf3eaefd
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:12:28 -0500
Commit message:

 Check that seed = NULL leaves runUmap's seeds unset (#115)

From code review: the rewritten branch had a test for a given seed only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 22d767cc2aab34872c287a31eb53730d7aeb2605
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:09:47 -0500
Commit message:

 Say which scrapper Bioconductor 3.23 ships in NEWS (#115)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: bf184332cb66c5e0156a4598a0711ee45c533ee0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:06:36 -0500
Commit message:

 Record the scrapper floor in ADR-0009, NEWS and the roadmap (#115)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 95df10a463bfea42fa3126578d30972a89378851
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:06:15 -0500
Commit message:

 Write the decontXcounts() methods out as plain functions (#115)

The GET_FUN/SET_FUN closures were built at install time, so covr could
not trace them. Same behaviour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ede71e6cb798acde7f5f016b818732b8f045f565
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:06:15 -0500
Commit message:

 Remove the unreachable branch in plotDecontXMarkerExpression() (#115)

The input helper always returns a named groupClusters, so the plot
always faceted by Cell_Type.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 0ea5fe5f52fea3ea9898dc958daf52f3bb558642
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:06:15 -0500
Commit message:

 Require scrapper >= 1.5 and drop the old runUmap seed branch (#115)

No supported Bioconductor release ships a scrapper that takes 'seed', so
the formals check only kept code tests couldn't reach.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 436a23587524d4b29fb1286f49f3f1acd692127d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 07:06:15 -0500
Commit message:

 Pin decontXcounts() and the UMAP seeds before the #115 cleanup

The getter/setter round trip (with '...' passed through) and the seed
reaching both of runUmap's seeds pass on the current code; they guard
the rewrite of both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 3d14371fde09e464f425dc21c6ee23fcbd67fa4e
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-09 20:56:49 -0500
Commit message:

 Merge pull request #114 from campbio/fix/dead-compiled-code

Remove dead compiled code and migrate off MappedSparseMatrix (#78) 
Package: decontX
Commit: aa8f87fff1a4f39305a81f6ecf3775e11903bf22
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 18:42:00 -0500
Commit message:

 Keep the GPL notice in license.stan and record why (#78)

rstantools writes the GPL (>= 3) license.stan on purpose: its
documentation says the files it copies into a package are GPL (>= 3), and
the Stan model compiles against GPL headers (rstan, RcppParallel, Rcpp).
The maintainer chose to keep that notice as it was, with decontX's own code
staying MIT, rather than replace it with an MIT notice. license.stan and
the generated header are back to their devel contents; AGENTS.md, the
spec and the roadmap record the decision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ba06f1eff81e97aa375f60c6ae9376bdf95bbdb3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 16:44:29 -0500
Commit message:

 Sum the simulation's clusters with rowSums() and refresh notes after review (#78)

rowsum() drops absent groups and needed two full transposes of the count
matrix. Per-cluster rowSums() over seq_len(K) always gives K columns and
doesn't copy the whole matrix twice; the values are the same. Also: the
fastNormProp comment says numeric matrix, and AGENTS.md records the
1.11.25 refresh of the generated files and how license.stan reaches the
Stan header.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: df10a3f6aa6354d02996078b264795a1ece5f341
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 16:39:51 -0500
Commit message:

 Bump to 1.11.25 and record the dead code removal in NEWS, AGENTS.md and the roadmap (#78)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 661a9a5eb4b03991c95615949ccf86776a81a6c1
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 16:39:29 -0500
Commit message:

 State the MIT license in the Stan header and explain the RcppParallel import (#78)

inst/stan/include/license.stan was the rstantools skeleton default, so the
generated src/stanExports_shrinkage.h said decontX was GPL-3 while
DESCRIPTION says MIT. It now states MIT; the regenerated header differs
only in that comment. The RcppParallel import gets a comment saying why it
must stay: it loads the TBB library the compiled Stan model links against.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 1422d0bc5264d5160cc02d89ffb5f26e3afeeb61
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 16:38:39 -0500
Commit message:

 Migrate from the deprecated MappedSparseMatrix and fix the delta message (#78)

Eigen::MappedSparseMatrix is deprecated and removed at Eigen HEAD;
Eigen::Map<Eigen::SparseMatrix > is the replacement and reads the
same memory. The C++ delta check rejects negative values, so its message
now says non-negative values rather than positive integers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 </pre>
    </div>
  
    
Package: decontX
Commit: a9df2304ace2492089d61e457aa3ae617a2cfefe
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 16:37:48 -0500
Commit message:

 Remove dead compiled code and use rowsum() in the simulation (#78)

matrixSumsSparse.cpp, the numeric colSumByGroup (which segfaulted on NA),
fastNormPropLog, fastNormPropSqrt and nonzero had no caller. The only
caller of .colSumByGroup, simulateContamination(), now uses base rowsum(),
which also removes the int offset overflow in matrixSums.c. z always holds
every cluster from 1 to K, so the columns line up and eta is unchanged.
The tests of the deleted functions go with them. The remaining C++ helper
and the two Stan helpers are internal, so they no longer get help pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 781d8e244557621a5f2dab9590f744f14edf1679
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 16:37:07 -0500
Commit message:

 Pin the simulated eta and the C++ delta message before removing dead code (#78)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 273e8ba6a7d75cab7686abb6eed44451c9f2c86a
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 16:36:12 -0500
Commit message:

 Add the spec for removing dead compiled code (#78)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 1ed2f4f8d7af383720baf5c4f1e25f7a38caf977
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-09 07:26:07 -0500
Commit message:

 Merge pull request #113 from campbio/fix/drop-plyr-reshape2

Replace plyr and reshape2 with base R (#77) 
Package: decontX
Commit: 8b17ebeccb6236cdd01738ccecdc5999db1daecc
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 20:17:52 -0500
Commit message:

 Use expect_warning in the simulation renumbering test and reword a test name (#77)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 1ecc4faf4a2bb2c9253b2750166a76d6cf11f482
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 20:12:20 -0500
Commit message:

 Record dropping plyr and reshape2 in ADR-0008 and the roadmap (#77)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: a68baeaa772eae538a326e0a77e059a1d5b88037
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 20:12:00 -0500
Commit message:

 Replace plyr and reshape2 with base R (#77)

plyr::mapvalues() kept the type of the labels, so character cluster
labels got character codes that as.factor() sorts as text, and the EM
orders the clusters by them. z[] <- match(z, unique(z)) keeps that
exactly, where a plain match() would reorder the clusters for 10 or more
character labels. .meltMatrix() and .meltConDecon() build the same data
frames as reshape2::melt(), including its type conversion of dimnames.
Both packages leave Imports; bump to 1.11.24.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: a7cdb3a322ff86ee8281fd5006edab048f80ff50
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 20:10:21 -0500
Commit message:

 Pin the label numbering and melted plot data before dropping plyr and reshape2 (#77)

The tests describe today's output, so they pass before and after the
dependencies are replaced: character cluster labels numbered as text,
melt()'s column types in the marker plots, and the stacked counts in
plotDensity and plotBoxByCluster.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c485c06c591d0596696e715f965cc33bfea7f5d1
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-08 19:12:59 -0500
Commit message:

 Merge pull request #112 from campbio/fix/empty-batch-label

Reject empty batch names in decontX() (#102) 
Package: decontX
Commit: 15d247f236c3c75b44f7366e8703c7d8a7a64cf9
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 17:18:26 -0500
Commit message:

 Make the batch name check safe with NA and correct NEWS (#102)

Use %in% so .checkBatchNames() gives its own message even if a caller
runs it before the NA check. Rewrite the NEWS entry from runs of the old
code: labels were lost only when decontX estimated the clusters or when
they also appeared in another batch, and a single "" batch got "" rather
than "-".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ad85c7d02dd40ce7eaf2bb8bbf5765875c3bfe16
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 17:15:53 -0500
Commit message:

 Correct comments and NEWS for empty batch names (#102)

"" can name a list element; it just can't be read back with [[""]], so
say that. Test a factor batch without z as well, and note in NEWS that
the SingleCellExperiment path with the default embedding used to fail
while storing the UMAPs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 245393f006515301f77d9aced88fe357363de3c6
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 17:13:03 -0500
Commit message:

 Add NEWS entry and bump version for empty batch names (#102)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 16c91a47c8896d941b65a9fc904568f170b59a30
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 17:13:03 -0500
Commit message:

 Reject empty batch names in decontX() (#102)

A batch named "" lost its cluster labels: .runBatches() stores each
batch's estimates by name, R never matches an empty list name, so the
labels were built from NULL and every cell got "-". The name is also
used as a reducedDim name and a label prefix, so "" can't be supported.
decontX() now stops when 'batch' or 'bgBatch' contains "", naming the
argument. The test that pinned the old counts for a "" batch is replaced
by tests of the new error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 7c632fb356d6b8f80659f815e792b05f48c69abb
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-08 16:30:20 -0500
Commit message:

 Merge pull request #109 from campbio/fix/stan-process-tidy

Compute decontPro's split denominator once (#80, part 3) 
Package: decontX
Commit: 6253ea1c91b76d156b8b3b2683aae90ad5375ca8
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 12:44:06 -0500
Commit message:

 Clarify the allocation saving in the decontPro tidy-up spec (#80)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b3bdf858d3021392a79afd2d7d5ed56bdec6930e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 12:42:52 -0500
Commit message:

 Record measurements and ROADMAP status for the decontPro tidy-up (#80)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 50e0a7bbeabfe649f3ae3bda51a71672dfeeef71
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 12:41:56 -0500
Commit message:

 Compute the decontPro split denominator once (#80)

.process_stan_vb_out() built the same ambient + native + background
rate sum three times. Build it once, drop the repeated background_est
assignment, and name the ambient and native profiles separately.
Results are bit-identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ef35b359720d716e1362a5213fdc3c7cb9c42f1c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 12:40:46 -0500
Commit message:

 Add spec for the .process_stan_vb_out tidy-up (#80)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: bef9d2001c0054d5d49a081b6f11fe80c5e41f09
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-08 12:37:41 -0500
Commit message:

 Merge pull request #108 from campbio/fix/native-matrix-direct

Build decontXcounts with the direct native probability (#80, part 2) 
Package: decontX
Commit: 8d5cceab9d81f25ffbf7c317e3bc2a2ab8e7b517
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 11:19:30 -0500
Commit message:

 Code review fixes for the direct native counts (#80)

- .nativeCounts() builds the batch result from a plain dgCMatrix, so a
  dgCMatrix subclass no longer comes back as that subclass (devel always
  returned a plain dgCMatrix), and passes the C++ the same object it
  fills.
- The oracle test covers interleaved batches and the subclass; the label
  test compares dense matrices again.
- ROADMAP marks #80 parts 1 and 2 done.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 2688a1d9cc62ad5faa8443668429840863533697
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 11:13:08 -0500
Commit message:

 Regenerate references, record measurements and NEWS for #80

The references change only in decontXcounts (at most about 1e-14
relative); contamination and estimates are identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 79b4869d17cb44c18db3cbcc1cfa5c64a6e9f892
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 11:08:56 -0500
Commit message:

 Build decontXcounts with the direct native probability (#80)

calculateNativeMatrix() went through log() and exp(), searched each
column for every nonzero with coeffRef(), and copied the counts twice
(into Eigen and back to R). calculateNativeCounts() uses the EM's direct
formula, walks the columns in storage order and returns only the new
values; .decontXbatch() puts them in a copy of the counts, which shares
the row indices and column pointers. Values change by about 1e-14
relative at most (agreed tolerance, audit A5-04/D2-09).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 83dac7139f431b130d9f626cd771196eb47053ff
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 11:08:56 -0500
Commit message:

 Add spec for the direct native-count matrix (#80)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 3df858e4bb85a1c7bd155736aa6c58233ff57e1d
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-08 10:26:26 -0500
Commit message:

 Merge pull request #107 from campbio/fix/em-unchecked-indexing

Use unchecked indexing in the EM loop (#80, part 1) 
Package: decontX
Commit: ecd3414e91c024c1a45d3b67c9aca9cbb34b4a3d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 08:53:53 -0500
Commit message:

 Note that the EM guards keep the unchecked loops in bounds (#80)

Code review: the size and z-range checks in decontXEM() and
decontXLogLik() now protect memory, not just give clearer errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: df1384ae00f24e845338f39dc34dcd17116cbbbe
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 08:46:05 -0500
Commit message:

 Record EM benchmark results and NEWS for #80

The checked accessors cost far more than the audit's 20% estimate
(PBMC4k with z given and embedding = FALSE: 3.36 s to 1.74 s), so the
code comment no longer quotes that figure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6d284214477d7bcd03743711034d4f8e6f65c557
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 08:43:05 -0500
Commit message:

 Use unchecked indexing in the EM loop (#80)

Rcpp's checked accessors cost about 20% of the EM loop: new_phi(i, k)
looks up the dim attribute for every nonzero count. The loops in
decontXEM() and decontXLogLik() now use raw pointers. The guards at the
top of each function already check every size and the range of z.
Floating-point expressions are unchanged, so results are identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d32740fc9757bab6420c58745e91278e25b1d09b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-08 08:41:45 -0500
Commit message:

 Add spec for unchecked indexing in the EM loop (#80)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ddaed800ab4685063f5e7a6fde641e05c8506fd7
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-08 08:32:34 -0500
Commit message:

 Merge pull request #106 from campbio/feature/embedding-numthreads

Skip the embedding when z is given, and add numThreads (#79) 
Package: decontX
Commit: 2eeb05b4fb19a2340227bdcb2bd7d36398fe276b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 19:51:41 -0500
Commit message:

 Lower the batch-size minimum to 2 cells with embedding = FALSE (#79)

The 3-cell (15 with legacyInit) minimum exists for the PCA and UMAP,
which embedding = FALSE skips. One cell is still refused: the default
estimateDelta = TRUE can't fit the contamination prior from it and
MCMCprecision warns on every iteration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c6b9abb3d7cca437d891455923bf46bad0887b35
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 15:47:19 -0500
Commit message:

 Say numThreads can change estimated clusters; record #79 in the ROADMAP

On 100,000 simulated cells four threads found 11 clusters instead of 10,
so 'rarely' undersold it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f55da73017ecd19a92fbaeb0e9221a71868c5198
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 15:15:13 -0500
Commit message:

 Keep .decontX and .decontXParams under 50 lines (#79)

The new checks pushed both over BiocCheck's recommended length, raising
its long-function count from 13 to 15. The flag, seed/logfile/numThreads
and embedding checks move into small helpers with the same messages, and
a two-line comment in .decontX becomes one. The count is 13 again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 68b6085e81303702a9830b679ed2d1426c623621
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 15:04:44 -0500
Commit message:

 Code review fixes for embedding and numThreads (#79)

The scrapper mocks keep the real formals, so the numThreads test also
passes on scrapper 1.2 to 1.4, where decontX passes runUmap's old seed
argument. The plot stops clearly when colData has no
decontX_contamination. The docs note that legacyInit with seed = NULL
gives the EM a different random start without the embedding, and that a
batch plot needs the run's cells in the same order. Drop a repeated
is.finite() check.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 0e4defb8c167bf73e045baf0e7da11d09d796954
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 15:01:14 -0500
Commit message:

 Review fixes for embedding and numThreads (#79)

plotDecontXContamination() with reducedDimName and batch stops with a
clear message when 'x' no longer has the run's cells (it failed with a
subscript error on a subset SCE), and checks 'batch' and
'reducedDimName' up front. Tests now cover the SCE results without the
embedding, a real legacy run with two threads, and the new plot errors.
The numThreads docs say how the legacy path uses threads. The bench
reloads PBMC data cached without z.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c5194daf6a701259c118610a6f8686c165aa64d0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 14:55:29 -0500
Commit message:

 Bench runs without the embedding and with four threads (#79)

New run types z_supplied_noembed and z_estimated_threads4, and
DECONTX_BENCH_REAL_RUNS for real mode, whose data now carry the z a
default decontX() run estimates, so real mode can run z_supplied.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 073f6dfe9ade0e48ba86c35c2347fd92381c0c06
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 14:55:29 -0500
Commit message:

 Add embedding and numThreads to decontX, reducedDimName to the plot (#79)

embedding = FALSE skips the initialization (normalization, PCA, UMAP)
when z is given; the decontamination is identical and only the UMAP is
left out. It needs z. The zero-count check still runs. numThreads is
passed to scrapper's variance, PCA and UMAP steps and to the legacy
calculateUMAP. plotDecontXContamination() can plot on any reducedDim of
an SCE; with batch = NULL it then plots every cell. Bump to 1.11.19.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 047e95921534a0583abc0e117eebb3363ded3921
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-07 13:03:26 -0500
Commit message:

 Spec for skipping the embedding with z, and numThreads (#79)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: a6bb654d332d2e632c8b87937cb2e5aa383bb921
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-07 11:28:57 -0500
Commit message:

 Merge pull request #105 from campbio/fix/split-decon-files

Move decontXcounts and simulateContamination to their own files (#76, PR 5 of 5) 
Package: decontX
Commit: 1daecf78e5f22d2b7f32bd7eedc144e04653223e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 18:52:49 -0500
Commit message:

 Reflow the AGENTS.md test list (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 5f23feb2ee8750dbe53c8c007c33b84150518eea
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 18:50:10 -0500
Commit message:

 Bump to 1.11.18; record the file split in AGENTS.md and ROADMAP (#76)

AGENTS.md lists the two new R files and the new test file, and now says
retrieveFeatureIndex() lives in R/celda_functions.R. The ROADMAP marks
the five #76 PRs done. No NEWS: nothing changes for users.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c5cb7b3d9061b7b0e0fbf05d28d30518c37c26e7
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 18:50:10 -0500
Commit message:

 Move decontXcounts and simulateContamination to their own files (#76)

Pure move out of R/decon.R, which keeps the decontX core: the
decontXcounts generics, methods and GET_FUN/SET_FUN helpers go to
R/decontXcounts.R, and simulateContamination() with
.simulateContaminatedMatrix() to R/simulateContamination.R. Their tests
move unchanged to test-simulateContamination.R. Only the "Simulating
Data" section banner is dropped; the Rd files change only in their
source-file header (ADR-0004, A4-17).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 10a91990aed90cb2dc1d64490ff25f7a56a251df
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-06 18:14:59 -0500
Commit message:

 Merge pull request #104 from campbio/fix/hdf5-in-memory

Keep the decontX result in memory for HDF5 input (#76, PR 4 of 5) 
Package: decontX
Commit: 58cf027d062ad89c82b1b22d9d2ab133d8892958
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 16:05:01 -0500
Commit message:

 Code review fixes for the in-memory HDF5 result (#76)

compare-commits: split the HDF5 path into hdf5 (values, contamination)
and hdf5Class (class of the result and its seed), so this PR's
intended class change can't hide a change of values. NEWS names
writeHDF5Array() for matrix input and says HDF5Array's dump settings
no longer apply. Spec amendments record these, the benchmark, and the
findings left as they are.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 546ca9434d0ece851d7bd20df208f6ee319c51bf
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 16:01:10 -0500
Commit message:

 Reflow the decontXcounts return text (#76)

Spec review nit: 'However,' sat alone on a roxygen line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 8e97e5f8f22810ea77d974c3daa6339d87baf013
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 15:58:43 -0500
Commit message:

 Bump to 1.11.17 with NEWS for the in-memory HDF5 result (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f8326a78026374ee0b40aa568bbebb10ca8c588b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 15:58:43 -0500
Commit message:

 Keep the decontX result in memory for HDF5 input (#76)

.asInputClass() wrote the whole result to a new HDF5 file when the
counts were HDF5-backed: 63% of the run time on pbmc4k (audit A5-06),
into R's temporary folder, so a saved object pointed at a file that is
gone in the next session. Every DelayedArray input now gets the
in-memory sparse result wrapped as a DelayedMatrix. Values and class
don't change. The help says how to save the result to disk.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b0f8dabbf01139e7c38c846bcd1e41ab16c37746
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 15:57:26 -0500
Commit message:

 Compare HDF5 input between commits (#76)

HDF5Array isn't a decontX dependency, so the test suite can't run
HDF5-backed input. dev/compare-commits.R gets an hdf5 path, skipped
without HDF5Array, that returns the values, contamination, and the
class of the result and its seed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 28b90fef5e635ef78e79c4aa9831236d2e0535c9
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-06 15:56:54 -0500
Commit message:

 Spec: keep the decontX result in memory for HDF5 input (#76)

PR 4 of 5 for the container-agnostic core (ADR-0004, A5-06).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 5cc463bc1152e5494119ad7aab31534f2026dcb3
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-06 06:59:39 -0500
Commit message:

 Merge pull request #103 from campbio/fix/batched-assembly

Assemble batched decontX counts with one cbind (#76, PR 3 of 5) 
Package: decontX
Commit: 89132259a64b474f93896e69f8b096f299bf6078
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 20:53:41 -0500
Commit message:

 Word NEWS to match the benchmark (#76)

dev/bench at 50,000 cells: allocations fall by about half with and
without batches, run time a little, and the batched peak RSS doesn't
move, so NEWS says less memory allocated rather than less memory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: fc97b4e5a87beede1c47d0b45aba3bc7c08cba9c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 20:45:36 -0500
Commit message:

 Point the spec at #102 for the empty batch label (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 0c5e429859378f91a53b96e62093b92f44d5effe
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 17:58:01 -0500
Commit message:

 Record the batched-assembly spec amendments (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 161b3243bee8744f5fc2063858b657b0327566e4
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 17:57:50 -0500
Commit message:

 Bind batches by position and free them before the reorder (#76)

Code review fixes. Looking batches up by name lost a batch labelled
"" (R never matches an empty name), so batched runs with that label
stopped with 'subscript out of bounds'; devel assembled its counts
correctly. The per-batch counts are now a positional list, in
unique(batch) order.

.bindBatches() now only binds; .inCellOrder() reorders and names. The
per-batch list is removed between the two, so it isn't held during
the reorder, and the cell order comes from one order(match()) instead
of a which() per batch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 06be53f8814e5d868cb11b8477840cccbc15bcb2
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 17:49:35 -0500
Commit message:

 Keep decontXcounts dimnames unnamed, as before (#76)

Passing dimnames(counts) to .bindBatches() kept the names of the
dimnames list (for example from table()), so decontXcounts was no
longer identical() to devel for such input. Build the list from
rownames() and colnames() as the old zero matrix did. Found by the
spec review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 23c81b57783a0f8409b1c939f094f6154a11c065
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 17:43:42 -0500
Commit message:

 Bump to 1.11.16 with NEWS for the batched assembly (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f31aef989c4dbe429925e87b9bab89104c645ed0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 17:43:42 -0500
Commit message:

 Assemble batched decontX counts with one cbind (#76)

.bindBatches() replaces the per-batch .setBatchColumns() copies, which
renamed, dropped, bound and reordered every column for each batch. One
batch's matrix is now returned as it is; several batches are bound once
and reordered once, only when the cells aren't already in batch order.
Results are identical; a new test checks interleaved batches against
per-batch runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6c9da6dd379462aae3bc972999c273b6b4bd4e49
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-05 17:41:23 -0500
Commit message:

 Spec: assemble batched results with one cbind (#76)

PR 3 of 5 for the container-agnostic core (ADR-0004, A5-05).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 3e315cd1701cbf8353bd179d2fea53b6afb4ffc3
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-05 15:16:26 -0500
Commit message:

 Merge pull request #101 from campbio/fix/core-decomposition

Decompose the decontX core into named helpers (#76, PR 2 of 5) 
Package: decontX
Commit: 96ee337959a3a23b01686cda8172331a40f348cd
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 17:01:29 -0500
Commit message:

 Code review fixes for the core decomposition (#76)

The log tests run every iteration (convergence = 0), so a platform where
the EM converges early can't change their line count. The test that no
longer calls .decontXoneBatch() is renamed for what it checks, and a
comment states the checks .decontXoneBatch() relies on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 50225b690fb785020c92f86f14c997d3bfd3e39b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 16:56:59 -0500
Commit message:

 Keep cat()'s logfile handling and pin the no-z log (#76)

.logMessages() hands cat()'s text to write(), which treats logfile as
cat() did, so logfile = "" logs to standard output again. NEWS says when
bgBatch used to be ignored. Spec review fixes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b2f0860c51cb356b25e2a95a18db273485dea049
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 16:52:19 -0500
Commit message:

 Record the core-decomposition spec amendments (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6e2ff03211f4e31902aa27e3d6dba3e0073dc30e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 16:52:05 -0500
Commit message:

 Bring .decontX() and .runEM() to 50 lines or fewer (#76)

The log-likelihood step moves into .emLogLik(), and .decontX() takes
its arguments on one line with shorter calls, as the spec asks of every
core function.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ca6b16ca44d2a247807bd274764266e2a681bb32
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 16:50:05 -0500
Commit message:

 Decompose the decontX core into named helpers (#76)

.decontX() and .decontXoneBatch() become short calls to helpers for the
batches, the per-batch runs, the column insertion, the estimates, the
DelayedMatrix conversion, the initialization and the EM. One .withSeed()
replaces the three seed blocks. Dead code goes: deconMethod, the inert
stopIter, umap <- NULL, the twin decontXEM() calls, totalCells, the five
1e-20 literals (now .decontXPseudocount) and the per-batch re-checks the
core already runs. .logDecontX() and .logBanner() replace the repeated
logging arguments, and .logMessages() writes the same text without
cat().

bgBatch given with batch but without background now stops instead of
being ignored (NEWS, 1.11.15). The two direct .decontXoneBatch() calls in
'Testing .decontXoneBatch' call decontX() with the same inputs and
messages, as approved. The #74 snapshot's error header now names
.decontXBatches(); its message doesn't change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b2c9239d6c8638c12f759b6358abb04d7f12c638
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 16:45:04 -0500
Commit message:

 Test the bgBatch-without-background error and pin the log text (#76)

The bgBatch tests fail: decontX ignores bgBatch without background. The
log snapshots, recorded on the current code, pin every line the core
logs, trailing spaces included, for the logging changes that follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 9ac4bd044091ea84bceae19711c4772593fb1174
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 14:30:20 -0500
Commit message:

 Spec for decomposing the decontX core (#76, PR 2 of 5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: e106cc0dc541a9bb49fffac3571535e9577d1103
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-04 13:23:37 -0600
Commit message:

 Merge pull request #100 from campbio/fix/core-contract

Container-agnostic decontX core and params constructor (#76, PR 1 of 5) 
Package: decontX
Commit: 057a213a53ce8c75913b4e072a968e161fa720dd
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 10:39:59 -0500
Commit message:

 Code review fixes for the core contract (#76)

The help and NEWS say when runParams$batchBackground is NULL (bgBatch
without background was already recorded as given). A test checks that
every parameter reaches the params list; the formals helper uses
methods::unRematchDefinition(). Comments on .decontXUMAPs() column names
and on .decontXoneBatch()'s seed are brought up to date.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 24e21b1b55f76bcec7af3ad6ee5ab28d2a72113a
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 10:34:52 -0500
Commit message:

 Spec review fixes for the core contract (#76)

NEWS and the decontX() help now say runParams always has
batchBackground, including in the SingleCellExperiment metadata.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 701508815ba0eb65ce6a58bfdb251104a339f85f
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 10:31:58 -0500
Commit message:

 Drop the agent-log item from the core-contract spec (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c259af6414f60983233cd2fe449e63ef17033ebb
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 10:27:38 -0500
Commit message:

 Separate a container-agnostic decontX core from the methods (#76)

The decontX methods now only read the container, build the parameters
once with .decontXParams() (no defaults; a test checks the methods'
formals agree with it), call .decontX(), and write the results back.
The background checks and deduplication move from the methods into the
core, and the SCE UMAP padding into .decontXUMAPs(). The core returns
the batch of each cell, so methods no longer read runParams, which is
built once and always has batchBackground (#96). Results are unchanged.

Part of #76. Version 1.11.14.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d0fbb48e6adce8a23707d78c111eb42902d259a2
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 10:23:42 -0500
Commit message:

 Amend the core-contract spec for the two ported tests (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b096db060a4db24c231f297cfeba787600d3d021
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 10:18:38 -0500
Commit message:

 Accept ADR-0004 and mark the core-contract spec approved (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 17483149db23b3258580a82494db30cd9cb3678c
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-04 08:29:24 -0600
Commit message:

 Merge pull request #98 from campbio/fix/roadmap-55

Mark Phase I-a to I-c done in the roadmap; list .Renviron in .Rbuildignore 
Package: decontX
Commit: 4f0051d58b34c75760f08c140e822892bb4ca2ef
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 08:23:49 -0500
Commit message:

 List .Renviron in .Rbuildignore

R CMD build already skips .Renviron (tools:::.hidden_file_exclusions),
so the tarball doesn't change. The explicit entry records that the
untracked devel-library .Renviron must never be packaged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 007fd0033ab75e6a3d21a44778f285d35e59fb97
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-04 08:17:25 -0500
Commit message:

 Mark Phase I-a to I-c done in the roadmap

The stopgap (#65), the regression net (#66), the I-b fixes (#67-#74)
and the coverage work (#75) have merged, and their issues are closed.
They move to Done with their PRs; the devel-library setup is done too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f3ebbb1670b5802df60576326b469e0fa5f5f7bc
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 11:43:14 -0500
Commit message:

 Record the #55 fix from #64 in the roadmap

The expect_equivalent() warning (#55, A3-07) was fixed by an outside
contribution, #64. Also rewraps the Phase 0 entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d55f628b2ecf77e0b27c49149f7b2976756865b8
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 22:23:39 -0500
Commit message:

 Say which new test already passes on devel in the core-contract spec (#76)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 957a3b19f68eff9e8b635bbafbc7de1fc44c8148
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 22:23:31 -0500
Commit message:

 Spec for the decontX core contract and the completed ADR-0004 (#76)

The spec covers PR 1 of the five #76 PRs. ADR-0004 records the
2026-11-03 decisions on its open points (runParams, UMAPs, list names,
new arguments, decontPro) and the PR order, for the maintainer's review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 3448ff07886156d2202f09829a5c09b794ce52fa
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-03 20:46:28 -0600
Commit message:

 Merge pull request #97 from campbio/fix/test-coverage

Raise test coverage and fix hollow tests (#75) 
Package: decontX
Commit: 61d65b02bcac6533247970768a27cd0b39a2d333
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 21:06:32 -0500
Commit message:

 Fix a missing space in the duplicate groupClusters error (#75)

The message read "assigned to asingle group". Found while testing the
error; the maintainer asked to fix it here, so 1.11.13 gets a NEWS
section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 1a3150258222d061bf2a7ab81110c0a96f65a019
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:56:16 -0500
Commit message:

 Code review fixes for the coverage tests (#75)

quietStan() prints Stan's output when a fit fails, since that output
holds the reason. The background eta profile comes from one helper,
the shared simulation is a plain simulateContamination() call again,
the legacyInit UMAP is checked for shape and NA, the C++ guard test
checks the wrappers' argument names, and the varGenes = NULL test no
longer runs two fits that couldn't differ on the fixture.
.covrignore and codecov.yml point at each other.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 4990cc81dc65ce52d554451b809c555118348381
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:51:19 -0500
Commit message:

 Spec review fixes for the coverage tests (#75)

Covers retrieveFeatureIndex on a plain vector, the last untested
branch. Checks the marker expression values and the parameter names of
the decontPro output, keeps the assay check after the SCE background
run, and seeds the sparse-data test with withr.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 37e92516092cb70e089ac435957929a384da7659
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:47:06 -0500
Commit message:

 Version 1.11.13, AGENTS.md test notes and spec amendments (#75)

Test-only change, so no NEWS section (as for 1.11.4). AGENTS.md
describes quietStan(), the silent-suite rule and the skips as they now
are. The spec records the unreachable no-groups plot branch (A3-12)
and the two places the plan was adjusted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 564eead67a155425bcb921c00532fed35020bc2e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:46:49 -0500
Commit message:

 Replace hollow tests and quiet the suite (#75)

The old matrix and SCE tests now build their plots and check the data;
background runs check that eta is the background's gene profile;
legacyInit is tested for what it promises (with z, only the UMAP
changes). A Stan-free test of .process_stan_vb_out() checks the split
of each count on hand-worked rates, which the sum-to-input check can't
(A3-04). Three real Stan fits become one (A3-09).

The suite now runs with no warnings and no console output: sparse
Seurat fixtures (A3-08), verbose = FALSE, and quietStan() around real
Stan fits (A3-15). The shared simulation moves into a helper and
library() calls go (A3-16). Tests that check results run the EM to
convergence instead of two iterations (A3-20).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f54f5c97cda8f6845ca30bd39c7dd2a3252ab62c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:43:00 -0500
Commit message:

 Test the internal and C++ argument checks directly (#75)

No exported function passes input that reaches these checks, so they
are called directly: three R helpers and the 22 shape checks in
DecontX.cpp, each with the message it gives (A3-02, A3-18).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d5a193666a46999cb6a1dd3f73b236f8cc6acb28
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:39:34 -0500
Commit message:

 Test the paths exported functions reach but no test did (#75)

Covers decontX's seed = NULL (default and legacy), logfile, unnamed
background columns, unnamed assays and varGenes = NULL;
simulateContamination's seed = NULL and single delta; every branch and
message of retrieveFeatureIndex; plotDecontXContamination's batch
argument and errors; the marker plots' argument errors, log1p and
plotDots; and the plot plotBoxByCluster returns (A3-02). Each test was
checked to fail with its path broken.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 9bef5c01b8d425bd17e58e2caa894d22af3db369
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:28:36 -0500
Commit message:

 Test the scater-missing legacyInit error (#75)

.hasScater() wraps requireNamespace() so a test can mock scater being
absent; the error was untestable on machines with scater (A3-14).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 84d51bcdef2a86bea8f936a6c8cbc1be57e61f48
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:26:33 -0500
Commit message:

 Ignore generated code in local coverage (#75)

.covrignore lists the generated files codecov.yml already ignores, so
make coverage and codecov report the same denominator (A3-03). Marks
the spec approved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 4eaba21c298830ff009f9e2889e76d9e1791e394
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-03 20:25:45 -0500
Commit message:

 Spec for raising test coverage (#75)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 96287e10ab0ca7f34c84f117e1b13ca24724ecb6
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-03 05:36:27 -0600
Commit message:

 Merge pull request #95 from campbio/fix/cosmetic-fixes

Cosmetic fixes: simulateContamination, retrieveFeatureIndex, runParams, typos (#74) 
Package: decontX
Commit: ca4af5da5bbb36c38a4d5f39323a31b72ae8c364
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-02 17:57:32 -0500
Commit message:

 Code review fixes for the cosmetic fixes (#74)

The K help text gives the new limit of at least two populations, and the
one-population stop sits before the fewer-populations warning instead of
inside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6884d1539dc7cda2895d2720ebbd23415e291b93
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-02 17:54:55 -0500
Commit message:

 Spec review fixes for the cosmetic fixes (#74)

The exactMatch = FALSE NA test now fails without the fix (it checks for
the one 'not present' warning only); NEWS mentions the C = 1 stop; the
'by' help text is rewrapped to 80 columns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 5b7f19a2afd07758289472335b35f9354a2562a3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-02 17:48:55 -0500
Commit message:

 Version 1.11.12 and NEWS for the cosmetic fixes (#74)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 591c23c6f2bf5e259787ceb26542a6c1ff85ce05
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-02 17:48:49 -0500
Commit message:

 Fix simulateContamination, retrieveFeatureIndex, runParams and typos (#74)

simulateContamination() drew each cell's total from 1 to NRange[1] when
both ends of NRange were equal (sample() on a single value); it now
draws from the range with sample.int(), which gives the same draws when
the ends differ. K = 1, or sampling that leaves one population, now
stops with a clear message instead of a "Division by 0" crash.

retrieveFeatureIndex() no longer matches an NA feature to a row named NA,
and checks that 'by' is a single string before using it.

runParams now records seed and iterLogLik. Typos fixed in messages and
help pages; the bgBatch-without-batch error names both arguments.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 65474e57dc8f0d3ebaee7dd7452c4075fc46bf34
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-02 17:45:24 -0500
Commit message:

 Spec for the cosmetic fixes (#74)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 88d5fc7c2e431e91699a25e7fa0032a5e1c54337
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-02 14:39:34 -0600
Commit message:

 Merge pull request #94 from campbio/fix/plot-fixes

Plots: shared bandwidth in plotDensity, file argument, groupClusters labels, unnamed UMAP columns (#73) 
Package: decontX
Commit: 77646e37f0509f3d5177d9a37fdda98ec3139be6
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-02 09:33:03 -0500
Commit message:

 Use seq_len() for the UMAP axis labels, for BiocCheck (#73)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 3a2697d60e268a46c68d4018729a3e3d4a34c8b6
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-02 08:49:25 -0500
Commit message:

 decontPro vignette: keep Seurat's cluster labels (#73)

as.integer(Idents()) turned Seurat's 0-based clusters into codes 1..K,
so the plotBoxByCluster() numbers were one higher than in the Seurat
plots. decontPro accepts any labels since #72, so the vignette passes
Idents() as it is; the decontaminated counts are identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b87eb5901966672467e83b820d8a012a5145cfaa
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 21:45:02 -0500
Commit message:

 Code review fixes for the plot fixes (#73)

plotDensity() takes the transform from its own x scale, leaves Inf out
of the bandwidth as well as NA, and keeps the default bandwidth when
fewer than 2 values are left, which used to stop with "need at least 2
data points". UMAP axis titles fall back for empty or NA names. The
groupClusters message reuses .firstFew(). The help pages name the
patchwork object that is returned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 2b8afbdc5f6fd0ec922234bedf5b75c6734f1e4c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 21:40:23 -0500
Commit message:

 Spec review fixes for the plot fixes (#73)

plotDensity() leaves NAs out of the bandwidth, as geom_density() drops
them, instead of stopping. Clearer wording in the help page and NEWS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d490558adeeb0c2a1c464d1f9f4c6c45cbb80463
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 21:35:00 -0500
Commit message:

 Version 1.11.11 and NEWS for the plot fixes (#73)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 792b61681d89cbea60d3025372631899e38f1971
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 21:35:00 -0500
Commit message:

 Marker plots list the labels in z; UMAP columns by position (#73)

A groupClusters value not in z now shows the labels z has, which after
a batched run carry the batch prefix. plotDecontXContamination() takes
the UMAP columns by position, so unnamed columns (lost in an h5ad round
trip) no longer fail. decontX() documents that a re-run keeps UMAPs from
runs with different batches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 9895e931716bf33ad3ce29db6b77be0abed973fa
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 21:35:00 -0500
Commit message:

 plotDensity: one bandwidth per panel; save to the file given (#73)

Each curve got its own bandwidth, so the less spread-out curve looked
taller. Both curves of an ADT now share bw.nrd0() of the pooled values
on the pseudo-log scale. plotDensity() and plotBoxByCluster() no longer
turn "x.pdf" into "x.pdf.pdf", and the docs give the real return.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 14447b9505987a0bd17b8137484dafd148ce9c03
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 21:34:59 -0500
Commit message:

 Spec: approved with the pooled bandwidth (#73)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 5c1d65ef2cf000df3519a2c6364f0351de638729
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 19:53:19 -0500
Commit message:

 Spec for the plot fixes; note the AnnData name restore for Phase II (#73)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d15a8818385392007de2dcd2caf4977bc9c01645
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-01 18:04:18 -0600
Commit message:

 Merge pull request #93 from campbio/fix/decontpro-inputs

decontPro: read split Seurat layers, recode cell_type, validate counts, reject unknown arguments (#72) 
Package: decontX
Commit: 4a792e4271d07c82717673c9c54d7f2d1f5414e5
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 17:27:51 -0500
Commit message:

 decontPro: reject NA and negative ambient_counts (#72)

They reached Stan and ended in the generic failure message. Reuse
decontX's sparse-aware .checkCountsDecon() on the matched rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d2309ce1e6136edf01ec7c14087b2a9203109b03
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:44:34 -0500
Commit message:

 Spec: record the code review additions (#72)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ec133c9a452433afec74a48dfe0c179d97e3f018
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:44:26 -0500
Commit message:

 Reword the Stan failure message for BiocCheck (#72)

BiocCheck flags signal text containing 'message'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 1239cd0dc9abbc5e3f4f2d82cc0215a1ae0fd7f7
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:30:42 -0500
Commit message:

 Code review fixes for the decontPro input checks (#72)

rstan::vb() returns an empty stanfit (mode 2) on most failures, not just
a list, so check the mode too. Reject Inf counts, recode cell_type with
factor() so a 1 x M matrix gets the right K, and skip the whole-number
check for integer counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 7c73d581eb45e1ba3bb164f83c8a756f74c88394
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:26:00 -0500
Commit message:

 Spec review fixes for the decontPro input checks (#72)

Test the unnamed-argument error in the SCE and Seurat methods and the
Seurat v3 assay path; tighten the NEWS wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 9836dd700acfe899caba2bcc5e6b013f1c1c17a0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:21:31 -0500
Commit message:

 Fix lint in the decontPro input fixes (#72)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: dd1c60c27c37a2ef65ff63564dca30ea50ecf879
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:20:59 -0500
Commit message:

 NEWS and version 1.11.10 for the decontPro input fixes (#72)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d655f33d9bb4536719cf62ba6b59cab482b9a502
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:20:59 -0500
Commit message:

 decontPro: join split Seurat layers, recode cell_type, reject unknown args (#72)

Split v5 counts layers were read one layer at a time; cell_type labels
other than 1..K, a wrong length or NA, and non-integer counts surfaced as
Stan errors followed by "no applicable method for '@'"; and '...'
silently dropped arguments such as seed or a delta_SD typo. cell_type is
now recoded to 1..K (sorted labels, or factor levels) and r_est rows are
named by label; 1..K input gives the same numbers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 513f2710aaefd87bb1154820a78ca9d2c311d0ed
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 16:12:53 -0500
Commit message:

 Spec for decontPro input fixes (#72)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d2a1a5210743746e58520a044bbe012d47455ec5
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-01 16:25:32 -0600
Commit message:

 Merge pull request #92 from campbio/fix/input-crashes

Fix crashes on small batches and some input classes (#71) 
Package: decontX
Commit: 072bc4719b4946ebd6f1790ca965270d03978e5e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 15:44:39 -0500
Commit message:

 Build the small-batch list outside stop() (BiocCheck note, #71)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: fd6d27957830810d033b8a58fc96cdca8262b392
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 14:55:22 -0500
Commit message:

 NEWS: logical and character values are now rejected (#71)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 54d409bc1281a334d998db9f104ba230efab8dfe
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 14:55:13 -0500
Commit message:

 Code review fixes for the input checks (#71)

- Accept only numeric element types: dMatrix from Matrix, and double
  or integer DelayedMatrix and SparseArray. A character DelayedMatrix
  crashed in the conversion, and logical sparse input ran as 0/1 counts
  while a logical base matrix was rejected.
- Check the matrix background's class before .checkBackground(), so
  it isn't logged about or warned on before it is rejected.
- Log "Converting decontaminated matrix to a DelayedMatrix" instead of
  the input class, which is no longer the output class.
- @return: an HDF5Matrix comes back for HDF5Matrix input; sparse HDF5
  input (TENxMatrix) gives an in-memory DelayedMatrix, as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f26ee9a2625a56766f51a23a3b956176c2415ec8
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 14:49:49 -0500
Commit message:

 Check the SCE assays' class too; spec review fixes (#71)

The SingleCellExperiment method now checks the class of the x and
background assays, as the spec says. One helper builds the class
messages, naming a matrix of the wrong type by its type. Also drops a
stale comment about converting back to the input class, and narrows
the NEWS wording to a DelayedMatrix over a dense matrix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 69d2053492d063b0aa897fa629b9d89818f1a14f
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 14:45:14 -0500
Commit message:

 NEWS and version 1.11.9 for the input crash fixes (#71)

make docs also bumped Config/roxygen2/version to 8.1.1; the Rd output
is otherwise unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 18d8fbb04ec9a943c014b3ed66376a1b34675f46
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 14:45:14 -0500
Commit message:

 Fix crashes on small batches and some input classes (#71)

- Stop before any work when a batch has fewer than 3 cells (15 with
  legacyInit), which the PCA and UMAP need; subset with drop = FALSE.
- Name unsupported classes for x and background; an SCE x needs an SCE
  background, as documented.
- Convert every batch through as(., "CsparseMatrix"), avoiding the
  deprecated as(., "dgCMatrix") that failed on dgRMatrix.
- Return a dgCMatrix (or DelayedMatrix) and drop the coercion back,
  which was dead for dense input; test the seed with is(), which a
  dense seed's two-element class broke.
- Guard decontXInitialize() against z below 1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 32fbb77c9e4079edaad4b9dce89eb6965dab9ac3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 14:45:14 -0500
Commit message:

 Add regression tests for small batches and input classes (#71)

One- and two-cell batches, dgR/dgT/SVT input, a DelayedMatrix over a
dense matrix, unsupported classes for x and background, and z below 1
in decontXInitialize(). Each fails on devel on the crash itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 2e3510f40eebcf248a073c6c76e2003d207afa5c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 14:37:01 -0500
Commit message:

 Spec for small-batch and input-class crashes (#71)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: f380a3607bf74a3d46ae925dd3a6168539449233
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-01 11:27:38 -0600
Commit message:

 Merge pull request #91 from campbio/fix/user-cluster-labels

Return user cluster labels, and fix the marker plots (#70) 
Package: decontX
Commit: c5e11a16f3bee3b748135cc71cd9e26fd201556c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-01 11:41:15 -0500
Commit message:

 Prefix user labels by batch when a label is in more than one batch

With per-sample cluster numbers (1..K in every batch), unprefixed labels
merged different clusters under one name in result$z, decontX_clusters
and the marker plots. Batched runs now prefix every label with its batch
when any label is found in more than one batch, as before #70; labels
unique to one batch come back unprefixed. Decided by the maintainer at
hand-off. References regenerated: only z in the two batched paths
changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 32298b994d5d5e26bca94a261a66f2d59b61f1fa
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 22:55:37 -0400
Commit message:

 Fix code review findings for user cluster labels

Keep plain-matrix input a matrix when groupClusters keeps one cell (the
marker plots stopped with "'rownames' of 'x' are 'NULL'"), assign
result$z to colData directly now that it is always a factor, and say in
NEWS that each batch's estimates no longer holds z twice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 70da2616bedea6666ee401696d4a624244f2dbff
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 22:51:19 -0400
Commit message:

 Close spec review gaps for user cluster labels

Tests: unbatched factor z, batched SCE, phi/eta columns and the native
matrix for more than nine character labels, labels of an unused plot
level, and the expression plot on a two-assay SCE with and without
groupClusters. Docs: the order of estimated batched levels and the
unprefixed per-batch z. The spec now says where the plot codes are made.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 8642e7178cdcf46306e55eae673177404466ab75
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 22:43:23 -0400
Commit message:

 Document the returned cluster labels; NEWS and version 1.11.8

The z argument, the returned z and the phi/eta column names in
?decontX, and groupClusters taking the labels in z in both marker plot
pages (#70).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6b27b1ba1ef751966c04b6aaba087cb2e45d278b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 22:42:42 -0400
Commit message:

 Fix marker plots for any cluster labels and one marker gene

plotDecontXMarkerPercentage() grouped cells by label value but sized
clusters by position, so labels other than 1..K errored, gave NA names
or wrong names; it now numbers the used levels 1..K (A1-07). Subsetting
to one marker gene no longer drops the matrix to a vector, and
plotDecontXMarkerExpression() attaches clusters by position, since
melt() turns numeric-like cell names into numbers (A1-20).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c908af73f23ac4dbbbf665f35deb67fb9990534a
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 22:42:42 -0400
Commit message:

 Return user cluster labels and name phi/eta by label

result$z is now always a factor. A user z comes back with its own labels,
unprefixed in batched runs; estimated clusters keep 1..K or
'-'. Each batch's estimates$z holds its labels, and the phi and
eta columns are named by label and ordered as its levels. The EM still
uses the same internal codes, so every value is bit-identical to before.
Unused factor levels are dropped per batch, so decontXEM no longer gets
an empty cluster with an all-NaN phi column (A1-09, A1-22, D2-08). The
duplicated z element in each batch's estimates is removed.

References regenerated for the z type and the phi/eta names only; a
comparison with the old references found every value identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 </pre>
    </div>
  
    
Package: decontX
Commit: d48fbe0cadbdf3dd4eb792fdcb2df2270b161226
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 22:40:58 -0400
Commit message:

 Test that user cluster labels come back and marker plots match them

Regression tests for #70: user z returned as labels, phi/eta named by
label, estimated z as a factor, no NaN columns for unused levels, and
marker plots for labels that aren't 1..K, one marker gene and
numeric-like cell names. All fail on devel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 17aaed6ae7f2bba947406819d02edaedb21152d2
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 22:38:42 -0400
Commit message:

 Add the spec for returning user cluster labels (#70)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 61a109c46c032362fbf2bb687e1f6e1a35922910
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-10-31 21:24:56 -0500
Commit message:

 Merge pull request #90 from campbio/fix/single-cluster-background

Allow one cluster with background, and run the k-means fallback on PCs 
Package: decontX
Commit: a151f82e11f1dfd7663532430a097aa04124a6e7
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 21:18:06 -0400
Commit message:

 Fix the legacy k-means fallback on sparse log counts

Base t() does not dispatch on the dgCMatrix that scater returns, so
legacyInit = TRUE stopped with 'argument is not a matrix' whenever
dbscan found one cluster. Matrix::t() handles sparse and dense input.
The path never produced results, so none change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c7f14d83b35ecc078308b3216455485b26f11928
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 21:17:19 -0400
Commit message:

 Test that the legacy k-means fallback clusters all genes

With legacyInit = TRUE, the fallback calls base t() on the dgCMatrix
of log counts and stops with 'argument is not a matrix'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 4469482b4becbb92328ab58111aa17a492c45132
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 19:59:59 -0400
Commit message:

 Fix code review findings for one cluster with background

Name the batch whenever the user gave one, including a batch called
"all_cells"; read the normalized counts only in the legacy fallback;
and check that k-means gets the scrapper PCs, not just their shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b62e3129fa419a52a16657dc1dd69798cbe8691f
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 19:56:08 -0400
Commit message:

 Close spec review gaps for one cluster with background

Check that the batched run returns one cluster for batch A, say in the
error that background allows one cluster, and note in the z docs that
legacyInit still runs k-means on all genes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: eb4f7520cf37d9aea04111a2e604cd585e89f203
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 19:53:05 -0400
Commit message:

 Allow one cluster with background, and run k-means on PCs

A z with one cluster is allowed when the batch has background; without
it, decontX stops before any batch runs and names the batch. When dbscan
finds one cluster, k-means now clusters the scrapper PCA components
rather than a dense cells x genes matrix (#43's 1.4 GiB warning);
legacyInit is unchanged. Bump to 1.11.7 (#69).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b6cb6187e73e71bce83f9a8d109265c04ed01627
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 19:53:05 -0400
Commit message:

 Test one cluster with background and the PCA k-means fallback

One-cluster z is refused even with background, where the fit is valid
(A8-01), and the k-means fallback clusters a dense all-genes matrix
(A8-02). The old one-cluster message is updated to the new wording,
which names the batch. These tests fail on devel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 7c967f29bcaca9e25ed01cfb759b62be805d6d7c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 19:49:48 -0400
Commit message:

 Add the spec for one cluster with background and the PCA fallback

Approved plan for #69 (A8-01, A8-02).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c33c5d108cf259c65d948685041d94495de9827e
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-10-31 18:33:27 -0500
Commit message:

 Merge pull request #89 from campbio/fix/background-genes

Match background rows by name, and check bgBatch 
Package: decontX
Commit: 369b76e39bc5034c19a6d5e23d6880ad1d1ec17d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 18:30:10 -0400
Commit message:

 Keep the background helpers under 50 lines

Move the shape checks into .checkBackgroundShape() and the name checks
into .checkBackgroundNames(), for BiocCheck's function length guideline.
No change in behaviour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 0962e00917e10ec2c509eec9e39a428b0cdb58dd
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 17:56:58 -0400
Commit message:

 Fix code review findings for background matching

Keep a one-droplet background batch a matrix (it failed to coerce to
dgCMatrix), allow duplicated names among the background rows that are
dropped, and name ambient_counts when it isn't a matrix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 4576d165c3aef65002d0dc46cb517af83d98e2f8
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 17:53:45 -0400
Commit message:

 Close spec review gaps for background checks

Test extra genes through the SCE method, give a background with no
droplets or no dimensions its own message, say in the bgBatch docs that
every batch needs droplets, and keep the verbose test's other log
messages out of the test output.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 2073e5208b79b555ba4190202fc866ff27b34215
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 17:50:48 -0400
Commit message:

 Match background rows by name and check bgBatch

.matchBackgroundRows() matches background (decontX) and ambient_counts
(decontPro) rows to the counts by name, drops extra rows with a log
message, and stops on missing or ambiguous names. bgBatch must have one
value per droplet, no NA, and the same values as batch. An empty
background after barcode removal now stops. Results don't change for
rows that already match. Bump to 1.11.6 (#68).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d4af67092e7d581bf97305ee56299c858e5ba80d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 17:50:48 -0400
Commit message:

 Test background row matching and bgBatch checks

decontX and decontPro take the background profile by row position, so
reordered rows give wrong estimates and extra genes give a C++ error
(#43). bgBatch is recycled or silently drops the background. These
tests fail on devel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: d818a6e34797af3d2c4b907440a3a46b6ebb78ad
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-31 17:47:57 -0400
Commit message:

 Add the spec for matching background rows and checking bgBatch

Approved plan for #68 (A1-02, A1-03, A1-12).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 0040d2ce465a5e1c69d66879648a021746a40a35
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-10-31 16:29:46 -0500
Commit message:

 Merge pull request #88 from campbio/fix/validate-decontx-args

Validate decontX inputs before running 
Package: decontX
Commit: 761436cd3d2d3bb85ffa1880be1e027393091c22
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 11:53:28 -0500
Commit message:

 Move the EM argument checks into their own helper

Keeps .checkDecontXArgs() under BiocCheck's 50-line guideline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 28359923ec0a6530a6144680cbf749486e7b8b78
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 11:49:51 -0500
Commit message:

 Check inputs before background processing, and close review gaps

Both methods now check their arguments first, and the counts check runs
once on the whole matrix instead of per batch, so bad input stops before
any work. Background counts are checked for NA and negative values.
maxIter = Inf with convergence = 0 never stopped, so it errors; seeds
outside R's integer range error early; an assay index and
iterLogLik = Inf still work; and a defaulted bgAssayName is reported as
assayName (code review).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c6624dc55f5790aa69befc775464a9c2ba7be5e3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 11:45:32 -0500
Commit message:

 Keep Inf working for maxIter and varGenes, and test accepted input

Inf meant 'run until convergence' and 'use all genes' before the new
checks, so it stays valid. Pin that integer, factor and Inf arguments
are still accepted, avoid expect_no_match() (testthat 3.0.3), and word
the assay message for objects without assay names (spec review).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 7f0205aea2d46d448bbeb28836d9a3298d96065d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 11:41:24 -0500
Commit message:

 Add NEWS for the input checks and bump the version to 1.11.5

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: e3f18b3201ba6ee255ca38bfaf405d350d170f49
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 11:41:20 -0500
Commit message:

 Validate decontX inputs before running

A z or batch shorter than the number of cells was padded with NA, which
became its own cluster; scalar arguments were never checked, so bad
values ran silently or failed deep inside R, withr or scrapper; delta
accepted 0 and failed cryptically on NA; negative counts gave NaN; and
a wrong assayName failed only after decontX ran. .decontX() now checks
every argument first, .checkCountsDecon() rejects negative counts and
uses anyNA(), and the SCE method checks assay names. The docs no longer
say varGenes and legacyInit are unused when z is given, and the
zero-count error no longer suggests supplying z. Results don't change
for valid input.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 6ca6bb95d28581f3a2b261aa9632d33e5d984f9e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 11:38:07 -0500
Commit message:

 Add the spec for validating decontX inputs (#67)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 5bc7e7e28c77b49a08778dfb52af01eda415320a
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-10-30 11:42:51 -0500
Commit message:

 Merge pull request #64 from ashishtele/fix/test-decon-expect-equivalent

Replace deprecated expect_equivalent() in test-decon.R 
Package: decontX
Commit: 23adf3bca25fc72af36a59047fa22e49766fc629
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-10-30 11:35:07 -0500
Commit message:

 Merge pull request #87 from campbio/fix/regression-net

Add the Phase I-a regression net 
Package: decontX
Commit: 4391f72e74d39db9ce3090b983cdd7bdc09a2a61
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 10:22:42 -0500
Commit message:

 Tighten the reference tests and compare-commits after code review

Check integer parts of every reference exactly, type included, and keep
the fixtures inside the tests. Share one decontPro fixture between the
new test and compare-commits, report skipped paths as failures, and show
waldo's differences when all.equal() sees none. Use maxIter = 2 in the
input-class test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ab4e5972a00adf1310639a9263def81877a79a2a
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 10:17:06 -0500
Commit message:

 Fail compare-commits on path errors and align the spec

A path that errored the same way on both commits read as identical, and
a missing helper only warned. Report errors and require the helper. The
spec now describes what was built (spec review).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: aaa8ed1d8de4e6314881a72a5ce2f5f717beea4d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 10:11:45 -0500
Commit message:

 Bump the version to 1.11.4 for the regression net

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: e7da77a7cffe49f78fe4fd7f7074666602abfe45
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 10:11:41 -0500
Commit message:

 Add a script that compares results between two commits

dev/compare-commits.R installs two commits into temporary libraries and
compares results with identical(), covering the paths the committed
references can't pin at 1e-10: no z, legacyInit and decontPro (A3-01).
Local only.

Part of #66

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 80cbff6c438ee2a9f9769754b8037f925225de06
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 10:11:41 -0500
Commit message:

 Pin current behavior that the Phase I-b fixes will touch

Give the batched fixtures different seeds (A3-05) and add patterns to
the bare expectations (A3-06). Test the bgBatch, varGenes and dbscanEps
stops, sparse and DelayedArray input against dense input (A3-19), and
the decontPro ambient_counts profile with Stan mocked (A3-10). Snapshot
the two misspelled messages that #74 will fix.

Part of #66

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: fff440113eace672cedf17a4cba8c4d8b4df0217
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 10:11:41 -0500
Commit message:

 Store reference outputs and compare against them in the tests

Tests only compared results within a run, so nothing showed when a change
altered results (A3-01). Five user-z decontX paths, two
simulateContamination() calls and the marker percentages are stored in
tests/testthat/fixtures/decontx-refs.rds and compared at 1e-10 (integer
parts exactly). fixtures/make-refs.R regenerates them when a change
alters results on purpose.

Part of #66

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: b2c857f4ccdf3d9317751c4fc5972a994cd35b6b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-30 09:38:53 -0500
Commit message:

 Add the spec for the Phase I-a regression net (#66)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: cf862bb5f13c5e9368a34cb6600a724b348c5806
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-10-30 10:02:48 -0500
Commit message:

 Merge pull request #86 from campbio/fix/vignette-seurat-section

Fix the Seurat section of the decontX vignette 
Package: decontX
Commit: fe00bcef2498ea791486aa476f364c86980825db
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-29 22:28:20 -0500
Commit message:

 Say when GetAssayData(slot =) became defunct in NEWS

It is defunct from SeuratObject 5.3, not 5.0 (code review).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 15f64f5ac8c6e3a45d1858b9c77230e084cb86e4
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-29 22:26:25 -0500
Commit message:

 Attach packages in the vignette's add-back Seurat chunk

Readers who already have a Seurat object paste only this chunk, so it
must attach Seurat and SingleCellExperiment itself (spec review).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 3a70e606f8f960627163a84ff386a526edb1e15c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-29 22:25:09 -0500
Commit message:

 Fix the Seurat section of the decontX vignette

The "Working with Seurat" chunks failed when pasted: GetAssayData(slot =)
is defunct in SeuratObject 5, SingleCellExperiment() was called without
the package attached, and the last chunk used seuratObj for an object
created as seuratObject. Read counts with LayerData(), attach
SingleCellExperiment, use seuratObject throughout, and add step comments.
Stopgap until the Phase II Seurat method replaces the section.

Fixes #65

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 1b642b7575d9afe6495445a32bcc025ffc9d381b
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-10-29 23:17:33 -0400
Commit message:

 Merge pull request #85 from campbio/fix/deep-review-plan

Add the deep review plan, Phase 0 audit, roadmap and ADR stubs 
Package: decontX
Commit: d10e04a5b543d2b3f554d9a44820b028bf65a7a7
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-29 22:05:24 -0500
Commit message:

 Record the opened issues and posted replies

Issues #65-#84 were opened from the approved audit, and the replies on
#40, #43, #44, #46, #39 and #56 were posted. The ROADMAP items carry
their issue numbers, and the audit keeps the approved #44 FAQ text for
the vignette rewrite (#83).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: cbf897feb3ba8a6cf3a13f74ce7f514e1d269f83
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-29 22:03:17 -0500
Commit message:

 Add the ADR-0004 to ADR-0007 stubs from the deep review

Proposed ADRs for the container-agnostic core, the multi-container
methods, decontPro's arguments and the pkgdown site. Each records the
decisions made during the Phase 0 review and lists the points still
open for the maintainer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 8ce1d3a228ec360403a1e43cf34788d298e10f4f
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-27 21:24:47 -0500
Commit message:

 Record the audit approval and add a pkgdown development site

The maintainer approved the Phase 0 audit on 2026-10-27 with one change:
the move to GitHub Pages includes a development site at /dev/, built
from devel, beside the release site. The plan, ROADMAP and agent log
record it; ADR-0007 settles the mode-by-branch build and how the
full-data articles appear on the development site.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c50520e778efe3163dc6e6763b5b76e5a2f185e6
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-27 08:47:08 -0400
Commit message:

 Add the Phase 0 deep review audit and rewrite the roadmap

The audit records every finding from the eight review areas with its
severity, effort and target phase, and the maintainer's decisions. The
roadmap now follows the plan's phases instead of the 2026-09 waves. The
plan gains an amendments section for the changes decided during the
review (direct ExperimentSubset approach, AnnData dispatch, decontPro
`background` argument, HDF5 output, ADR numbering).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: ed8b1d8e2210c18f511b74435c8fdd7b040fcab7
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-27 08:05:47 -0400
Commit message:

 Record the area 6 re-check and the 2026-10-27 decisions

Re-check the ExperimentSubset findings against the ExperimentSubset PR
stack, and record the maintainer's decisions: the direct read/write
approach for subsets, no subset-detection code until ExperimentSubset
#5 lands, the upstream issues filed (#57-#59), no empty-droplet demo
for decontPro, and `background` as decontPro's empty-droplet argument.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: 867e2ca5d9aa873afeb6d5e759937b2f0246fef6
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-26 21:39:37 -0400
Commit message:

 Add the recovered Phase 0 review drafts

The per-area findings from the 2026-10 deep review were kept only in a
session scratchpad that was later cleared. Rebuild them from the
session transcript and record the maintainer's answers to the open
area 7 and area 8 decisions, so the audit can be written from them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c94bdb0688911a82e494509a09047e2d415480b5
Author: Ashish Tele <ashishtele@users.noreply.github.com>
Date: 2026-10-21 20:55:35 -0400
Commit message:

 Replace deprecated expect_equivalent() in test-decon.R
 
Package: decontX
Commit: 10184cedf663ad3c7b5748c7bf6ca0b0aaa09e67
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-18 23:31:18 -0400
Commit message:

 Add a benchmark script for decontX and decontPro

dev/bench/bench-decontx.R times decontX() and decontPro() on simulated
data (about 10k, 50k and 100k cells), profiles a mid-size run, and
benchmarks 10x PBMC data. It installs the working tree into a temporary
library and runs each case in its own process, because load_all() builds
without optimization and times the EM step about 9 times too slow. Phase
I-e optimization PRs report before/after numbers from it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: c6fca8ee02a1703b9196e5d8d99954f28fa08f68
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-18 18:24:11 -0400
Commit message:

 Mark the deep review plan approved

The maintainer reviewed the phased plan and agreed with the designs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: decontX
Commit: e8c0150cc844111091b5e6457ff5fd9feceef831
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-10-18 11:37:25 -0400
Commit message:

 Add the phased plan for the deep review and multi-container work

Design agreed in brainstorming: a Phase 0 re-review building on the
2026-09 audit, Phase I fixes/coverage/refactor/speed, Phase II methods
for SCE, ExperimentSubset, Seurat and AnnData with results written back,
and Phase III docs plus a release-only pkgdown site.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: CycleMix
Commit: 4e71327fe19ff9594b218690ebe8447a644e067b
Author: Tallulah Andrews <tallulandrews@gmail.com>
Date: 2026-11-13 14:01:34 -0500
Commit message:

 final tidyup for Bioconductor
 
Package: SparseArray
Commit: 7f0a66c63139d0986ab344fe6f5737dd23242935
Author: Hervé Pagès <hpages.on.github@gmail.com>
Date: 2026-11-13 10:15:42 -0800
Commit message:

 SparseArray 1.13.5: Small tweak to type() setter

Changing the type of an SVT_SparseArray object can replace non-one values
with one values. For example this can happen when changing the type from
double to integer or from complex to double. When this happens, some SVT
leaves in the object might need to be turned into lacunar leaves.
This change makes sure that changing the type of an SVT_SparseArray object
switches the leaves that need it to lacunar representation.
 
Package: PscanR
Commit: ba6c2a0e63a593cc64ee09d7098b42f21b0a28cc
Author: Federico Zambelli <36039850+Federico77z@users.noreply.github.com>
Date: 2026-11-13 17:01:38 +0100
Commit message:

 Merge pull request #88 from Federico77z/Claude

Document one-sided P.VALUE; ps_build_bg_from_table() accepts a PSMatrixList (0.99.5) 
Package: PscanR
Commit: 247cee1c8d0eb238e0973ecc93218ff115da3613
Author: Federico77z <federico.zambelli@gmail.com>
Date: 2026-11-13 16:34:37 +0100
Commit message:

 CI: run BiocCheck without new-package now that PscanR is in Bioconductor

BiocCheck(new-package = TRUE) now fails with "'PscanR' already exists in Bioconductor" (PR #88, run 43445224350). Bioconductor's own builds run BiocCheck without it.
 
Package: PscanR
Commit: e123bf47f4e65d91d02a404365323651ed20eab6
Author: Federico77z <federico.zambelli@gmail.com>
Date: 2026-11-13 15:41:27 +0100
Commit message:

 Document that P.VALUE is one-sided; ps_build_bg_from_table() accepts a PSMatrixList (0.99.5)

ps_results_table(): P.VALUE is the upper-tail z-test p-value (enrichment only) and FDR is the BH adjustment over all motifs before filtering. The concepts vignette says the same. ps_build_bg_from_table(): a PSMatrixList such as the output of ps_retrieve_bg() is accepted and its background statistics are replaced.
 
Package: scpdata
Commit: f5cf66c139ef768df2b7f749f8c6560713ac4428
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-13 13:24:53 +0100
Commit message:

 fix news, fix/update brunner2022 man pages
 
Package: scpdata
Commit: a924b1f4104b320a7d33ff34cec66d29bf1883b2
Author: Laurent Gatto <laurent.gatto@uclouvain.be>
Date: 2026-11-13 12:21:54 +0000
Commit message:

 Merge pull request #55 from leopoldguyot/brunner2022_v2

add brunner2022_v2 dataset 
Package: scpdata
Commit: 2f0114d39b885b39feaf088ca90fd833d834ab4b
Author: leopoldguyot <leopold.guyot13@gmail.com>
Date: 2026-11-13 11:11:42 +0100
Commit message:

 add brunner2022_v2 dataset
 
Package: scpdata
Commit: d909aef39d7567d2cee8cd896040389c35ab0e1d
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-12 14:06:12 +0100
Commit message:

 update CC BY-SA link
 
Package: scpdata
Commit: f79dbd07d61d0eb3dd04bbea35b2454cfd6e0458
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-10 20:44:23 +0100
Commit message:

 Use new default main branch
 
Package: scpdata
Commit: 6a28f1454b2680e45d068f06c572999bc48dd067
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-10 17:58:45 +0100
Commit message:

 rephrasing license section
 
Package: scpdata
Commit: e9a2e79429894ce152b5c5060c08754374acb7f6
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-10 17:44:04 +0100
Commit message:

 update icon sizes
 
Package: scpdata
Commit: 87121eea4e3392db8f737304ba6aff000ce79d79
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-10 16:38:34 +0100
Commit message:

 Don't add pkgdown to build tarball
 
Package: scpdata
Commit: 192115664257fa94e30ce7f095e8717c6fbeaa3f
Author: Laurent Gatto <laurent.gatto@uclouvain.be>
Date: 2026-11-10 15:16:14 +0000
Commit message:

 Merge pull request #53 from guideflandre/master

Add Fulcher2026 data 
Package: scpdata
Commit: 59e174b955b523b1fb42d7f8a81e378b745fbb67
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-10 16:07:35 +0100
Commit message:

 Add: adds fulcher2026
 
Package: scpdata
Commit: 81b0db4b6cf320164114ad638be5e4ab1e0704d1
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-10 16:06:55 +0100
Commit message:

 Add: fulcher2026, finishing PR
 
Package: scpdata
Commit: 343305cb55ae97dc43c168928cf55ee4174eaaf6
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-10 14:00:46 +0100
Commit message:

 fix syntax error in DESCRIPTION
 
Package: scpdata
Commit: 9a004a6acec3937a5126552506c218a84a85574c
Author: Laurent Gatto <laurent.gatto@uclouvain.be>
Date: 2026-11-10 12:56:44 +0000
Commit message:

 Merge pull request #51 from leopoldguyot/leduc2024

add leduc2024_pSCoPE and leduc2024_plexDIA 
Package: scpdata
Commit: 5e6983a3fa6f6b3fb6a43e1fa14752778e90ed27
Author: Laurent Gatto <laurent.gatto@uclouvain.be>
Date: 2026-11-10 12:55:06 +0000
Commit message:

 Merge branch 'master' into leduc2024 
Package: scpdata
Commit: dc71c9483b582ad7a2ea5f964af65ea060d084d0
Author: leopoldguyot <leopold.guyot13@gmail.com>
Date: 2026-11-10 13:45:50 +0100
Commit message:

 update biocversion
 
Package: scpdata
Commit: 2a227a611a2f4977e37d800aa4cd49557fab0753
Author: Laurent Gatto <laurent.gatto@uclouvain.be>
Date: 2026-11-10 10:24:34 +0000
Commit message:

 Merge pull request #50 from guideflandre/master

Added leduc2025_pSCoPE data 
Package: scpdata
Commit: 3ce43fb03d80c7e9c540033c40ea1179ab939344
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-10 10:50:18 +0100
Commit message:

 Docs: changed to Bioc version 3.24
 
Package: scpdata
Commit: 7104bd26868428457439747c04990fe3015ee523
Author: leopoldguyot <leopold.guyot13@gmail.com>
Date: 2026-11-09 15:45:05 +0100
Commit message:

 Update metadata and DESC/NEWS
 
Package: scpdata
Commit: 84c748991fc4d9b21f05e49fc2c56fbe9e594f5c
Author: Léopold Guyot <leopold.guyot13@gmail.com>
Date: 2026-11-09 15:37:37 +0100
Commit message:

 Merge branch 'UCLouvain-CBIO:master' into leduc2024
 
Package: scpdata
Commit: e0a0f8fea6d01d8fc5e382f5b61bbaf69d1c3a19
Author: leopoldguyot <leopold.guyot13@gmail.com>
Date: 2026-11-09 15:32:07 +0100
Commit message:

 add leduc2024_pSCoPE and leduc2024_plexDIA
 
Package: scpdata
Commit: 4f2a57ccc6f8fc2b7e3ab3ff17d51b83d6e93920
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-09 14:46:06 +0100
Commit message:

 Docs: bump version and add contributor
 
Package: scpdata
Commit: b7b0623901464b220c147f3e6d254b9edf9ae291
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-09 11:59:30 +0100
Commit message:

 Docs: corrected documentation
 
Package: scpdata
Commit: a4d4c6659d85b7f1d89a09f814737a0dbb0b8f22
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-09 11:56:56 +0100
Commit message:

 Docs: completed the NEWS with leduc2025_pSCoPE
 
Package: scpdata
Commit: de42446e1e6952aa4355cb12f86916d694205c93
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-09 11:54:09 +0100
Commit message:

 Add leduc2025_pSCoPE docs and metadata.csv
 
Package: scpdata
Commit: 84141d26ca875bbb428aa9e2cf1d032274a56b56
Author: Guillaume Deflandre <37773040+guideflandre@users.noreply.github.com>
Date: 2026-11-09 11:01:20 +0100
Commit message:

 Merge branch 'UCLouvain-CBIO:master' into master
 
Package: scpdata
Commit: 14b8e10ace0837fe5dfe45fd3bf391a8ab376683
Author: GuillaumeDeflandre <potamoidef@gmail.com>
Date: 2026-11-06 17:28:14 +0100
Commit message:

 Add leduc2025_pSCoPE script
 
Package: QFeatures
Commit: d77e62d9f04afdb4049a195711dd764dcdf90b55
Author: Laurent Gatto <lgatto@protonmail.ch>
Date: 2026-11-13 15:12:31 +0100
Commit message:

 udpate news
 
Package: QFeatures
Commit: 77aab338b1e66c9d468f586ab65bf4918a7ebf3d
Author: Laurent Gatto <laurent.gatto@uclouvain.be>
Date: 2026-11-13 14:10:49 +0000
Commit message:

 Merge pull request #267 from leopoldguyot/issue_266

fix issue 266 
Package: QFeatures
Commit: 8a0cff9836f7246f429c2dbacfe98093e235ac65
Author: leopoldguyot <leopold.guyot13@gmail.com>
Date: 2026-11-13 15:00:17 +0100
Commit message:

 fix issue 266
 
Package: DuplexDiscovereR
Commit: 010525b1ff2ca8ea55211fe987557da39011ab3f
Author: Egors01 <yegor.smb@gmail.com>
Date: 2026-11-13 14:30:03 +0100
Commit message:

 fixes before release
 
Package: RnBeads
Commit: 614d481a722b44476439e3029b14b433104a34f6
Author: Fabian Müller <fmueller@mpi-inf.mpg.de>
Date: 2026-11-13 13:33:23 +0100
Commit message:

 Merge branch 'master' into devel
 
Package: RnBeads
Commit: b0f889f92033539b6a217987e7fcc7aed357e1af
Author: Fabian Müller <fmueller@mpi-inf.mpg.de>
Date: 2026-11-13 13:32:37 +0100
Commit message:

 Version update for Nima’s merged pull request
 
Package: RnBeads
Commit: b97750e4d36fffa2272c4b342f8ec955bd14ba4a
Author: Fabian Müller <fabian.mueller@uni-saarland.de>
Date: 2026-11-13 13:07:20 +0100
Commit message:

 Merge pull request #81 from Staminima/fix/residual_mat_ind

Fix/residual mat ind + diffVar 
Package: RnBeads
Commit: 6c8136d4d6a185b0c8582c1136475c2093888cc9
Author: staminima <this.is.nima.amini@gmail.com>
Date: 2026-10-27 15:28:50 +0100
Commit message:

 fixed: diffVar removing residual matrix, also bug in NA handling in computeDiffTab.default.site function
 
Package: RnBeads
Commit: 1b6c1c937a1dbda4d01954b2ba51a778be45f2e2
Author: staminima <this.is.nima.amini@gmail.com>
Date: 2026-10-27 15:12:32 +0100
Commit message:

 fixed: diffVar removing residual matrix, also bug in NA handeling in computeDiffTab.default.site function
 
Package: RnBeads
Commit: 58b064690614479256b1334a9719c4e1f7d7291c
Author: Nima Amini <nima@dhcp134-96-90-80.icbb.uni-saarland.de>
Date: 2026-10-26 17:36:20 +0100
Commit message:

 Fix residual mean indexing when comparison excludes samples
 
Package: scDblFinder
Commit: 56a93ff82e29f26f5bfe2ed29392b0925a27c793
Author: plger <pl.germain@gmail.com>
Date: 2026-11-12 22:18:51 +0100
Commit message:

 simplified no-delayed fix
 
Package: scDblFinder
Commit: 36ca9dcb621341918c599deeb647d3d0109aab69
Author: plger <pl.germain@gmail.com>
Date: 2026-11-12 22:09:42 +0100
Commit message:

 doc on speed fix
 
Package: scDblFinder
Commit: 48b7cad87f9b87193b1a0086c6082e593b789de0
Author: plger <pl.germain@gmail.com>
Date: 2026-11-12 22:04:56 +0100
Commit message:

 changed to CsparseMatrix
 
Package: scDblFinder
Commit: cb749bb58a96e65a16b7cd16e120d1964e704940
Author: plger <pl.germain@gmail.com>
Date: 2026-11-12 22:02:27 +0100
Commit message:

 removed unused line
 
Package: scDblFinder
Commit: 429f0ef8a697b6c9b3f4de185e6e08f1cc00d39b
Author: plger <pl.germain@gmail.com>
Date: 2026-11-12 22:00:56 +0100
Commit message:

 fixed huge slowdown due to scrapper's forced Delayed output...
 
Package: scDblFinder
Commit: 1a0831bd096dad402af8c3b3e4d6e472b88ffab8
Author: plger <pl.germain@gmail.com>
Date: 2026-10-18 18:05:29 +0200
Commit message:

 added link to Meier preprint
 
Package: MsBackendMsp
Commit: 4f80df56bf09be3cdf6b279f41f2db3f69cadd9d
Author: Johannes Rainer <5506112+jorainer@users.noreply.github.com>
Date: 2026-11-13 12:31:30 +0100
Commit message:

 Merge pull request #23 from rformassspectrometry/jomain

refactor: use stringi for small performance improvement 
Package: MsBackendMsp
Commit: e3e30c075acf2510923342a0aa842d7e24903d29
Author: Johannes Rainer <johannes.rainer@gmail.com>
Date: 2026-11-13 12:25:36 +0100
Commit message:

 refactor: use stringi for small performance improvement

- Switch from base R to *stringi* functions for a slightly faster performance.
 
Package: OSCA.advanced
Commit: 8d4345b9f275fb74c8399ca2af36fffa79e18a99
Author: Alan O'Callaghan <alan.ocallaghan@outlook.com>
Date: 2026-11-13 08:50:53 +0000
Commit message:

 Merge pull request #29 from OSCA-source/stripped

Strip out content and redirect to scrapbook and other resources. 
Package: OSCA.advanced
Commit: be0ea43989c5459f4c859770a81238943c50605c
Author: LTLA <infinite.monkeys.with.keyboards@gmail.com>
Date: 2026-08-26 15:09:37 +1000
Commit message:

 Remove the unnecessary GHA workflow.
 
Package: OSCA.advanced
Commit: bd73168efd036a6443ebc5e0251fa26f29956d0d
Author: LTLA <infinite.monkeys.with.keyboards@gmail.com>
Date: 2026-08-26 15:08:06 +1000
Commit message:

 Redirect to scrapbook and other resources.
 
Package: LEA
Commit: f49aff18e319dd90270a86ef189ab961b7b7091c
Author: Olivier Francois <olivier.francois@grenoble-inp.fr>
Date: 2026-11-12 20:43:57 +0100
Commit message:

 Add experimental checked fast LFMM reader
 
Package: BatChef
Commit: bb5af0857673fa456f7bd5f6de3631b4b3953690
Author: zuinelena3 <elena.zuin3@gmail.com>
Date: 2026-11-12 19:51:51 +0100
Commit message:

 Add python methods and change AnnData object
 
Package: AHMassBank
Commit: fdeb59632fe33c219f4a001f0dd1fc1aca8c761d
Author: Johannes Rainer <johannes.rainer@gmail.com>
Date: 2026-11-13 09:03:31 +0100
Commit message:

 Add MassBank release 2026.11
 
Package: LEA
Commit: 43308ef2bbf6e7b5741a5e94122491b63033b2c6
Author: Olivier Francois <olivier.francois@grenoble-inp.fr>
Date: 2026-11-13 08:53:40 +0100
Commit message:

 Add Wasm32 architecture support for bituint
 
Package: multipointR
Commit: 56617e4796d0bf7a0e8f6a3d0dab58ee43ae3d09
Author: Martin Emons <55688661+mjemons@users.noreply.github.com>
Date: 2026-11-13 08:05:29 +0100
Commit message:

 Error handling (#6)

* adding image ID and error handling

* fixed error handling and named list

* ran styler

* enable image covariates 
Package: multipointR
Commit: 542d135e72b7e02ddd9e139c8c73735396c658ba
Author: mjemons <martin.emons@gmail.com>
Date: 2026-11-02 14:21:34 +0100
Commit message:

 version bump
 
Package: multipointR
Commit: d59194913241d217834413713576894fb4c91845
Author: mjemons <martin.emons@gmail.com>
Date: 2026-11-02 14:19:10 +0100
Commit message:

 clip window if negative x & y occur
 
Package: multipointR
Commit: f5ff641fc100d0cdc4472ac90688f900c17a30d7
Author: mjemons <martin.emons@gmail.com>
Date: 2026-11-02 11:49:39 +0100
Commit message:

 new default window with convex hull; standardise = FALSE
 
Package: musicatk
Commit: deef96a42f2edea7babe0e0c58e5f21528229150
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-12 22:09:06 -0500
Commit message:

 Merge pull request #253 from nqgurevich/feature/cosmic-v3.6

 Update COSMIC signatures to v3.6 and add GRCh38 sets 
Package: musicatk
Commit: 35ef6d486e0f8112403fe5b2d6e328947b2eaf01
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 17:03:58 -0500
Commit message:

 Vignette: compare to v3.6 hg38 exome; correct ADR 0003's exome facts

The vignette's variants are hg38, so its exome comparison passes
genome_build = "hg38" and now uses the v3.6 GRCh38 exome catalogue. There,
the smoking signature's closest match is SBS100 (0.895) ahead of SBS4
(0.848), so the vignette names signatures from their best match among the
signatures with listed etiologies (maintainer's choice). The names stay
UV, Smoking and APOBEC.

ADR 0003 said COSMIC stopped publishing exome catalogues after v3.0 and
used v3.6 exome as an example error. Corrected in place before merge, with
a dated Corrections note, on the maintainer's decision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 98abe4416bd4ec56befee7f9fad448429526b4ff
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:58:32 -0500
Commit message:

 NEWS and spec for the v3.6 exome catalogues

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 00e4d9df318663ea2a4a821ed76833ca9f299bfd
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:54:01 -0500
Commit message:

 compare_cosmic_v3(): use the v3.6 exome catalogues

.cosmic_catalogues() gains the v3.6 SBS exome rows for GRCh37 and
GRCh38, so exome comparisons default to v3.6 like genome ones, and exome
data with hg38 works. cosmic_version = "3.0" still gives the v3.0 GRCh37
exome result; "3.0" with hg38 is the remaining error. The message no
longer says COSMIC stopped publishing exome catalogues, which was wrong.
Docs for the two new objects and _pkgdown.yml; the Shiny prediction tab
offers the v3.6 and v3.0 exome sets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 95390528d6108b2baa73e747c74f2cf30e7d70f8
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:52:08 -0500
Commit message:

 Add COSMIC v3.6 SBS exome catalogues for GRCh37 and GRCh38

The exome-normalized v3.6 SBS files come from SigProfilerAssignment
(commit ff61b0f), maintained by the COSMIC signature authors; its v3.6
genome SBS files are identical to the COSMIC downloads already in
data-raw/cosmic_v3.6/. make_cosmic_v3_6.R records the source and writes
cosmic_v3_6_sbs_sigs_grch37_exome and cosmic_v3_6_sbs_sigs_grch38_exome.
The other objects rebuild byte-identically.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 20835eb4aaa13788e8ee684ae2379e2700f5dda3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:51:46 -0500
Commit message:

 Tests for the COSMIC v3.6 SBS exome catalogues

COSMIC v3.6 has exome-normalized SBS catalogues for GRCh37 and GRCh38
(#253 assumed none existed after v3.0). Exome comparisons should default
to v3.6 for either build, and cosmic_version = "3.0" should still give
the v3.0 exome result.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 2b92e7b45a5ce79a64a661e553a216e15da2a41a
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:21:54 -0500
Commit message:

 Address /code-review of #253

- genome_build and cosmic_version are now the last arguments of
  compare_cosmic_v3(), so existing positional calls keep working.
- The result's "cosmic_catalogue" attribute names the COSMIC object
  used; the Shiny comparison table is labelled with it rather than with
  "latest".
- genome_build also accepts 19 and 38 as numbers, like select_genome().
- The app's version choice reads "Latest", which won't go stale.
- The spec records these and the findings left to the maintainer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: a60520860739613ab77ac99a6d06ea90fcdd490b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:15:42 -0500
Commit message:

 Address spec review of #253

- Shiny: a failed comparison (for example COSMIC 3.0 with hg38) showed
  its error, then ran colnames<- on a missing result and ended the
  session; it now stops after the alert. The comparison tab has one
  COSMIC V3 choice, since compare_cosmic_v3() picks the catalogue, and
  labels the table with the version chosen instead of a v3.0 object
  name. Add the SBS22c label; the version input is "COSMIC version".
- compare_cosmic_v3()'s plot title names the COSMIC version used.
- Docs: the build spellings, numeric/"v" versions and the exome hg38
  error are documented; the exome object mentions cosmic_version.
- Tests: latest + GRCh38 without an explicit version, DBS builds differ,
  and the full list of available catalogues in the 3.0 + hg38 error.
- NEWS: the argument position change and the Shiny wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 523491fdb1c4636fd5f5a1f7c80a1a5000086045
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:08:09 -0500
Commit message:

 Vignette and NEWS for versioned COSMIC signatures

The vignette's exome comparison text says it uses the v3.0 exome
catalogue and prints a message, that genome comparisons default to v3.6
with genome_build, and that cosmic_version = "3.0" reproduces earlier
results. NEWS 2.7.16 describes the ADR 0003 design in place of #253's
in-place update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 9c00d6a104b28f34cf7c4499ab08af9b78a93d29
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:08:09 -0500
Commit message:

 Shiny: wrap the COSMIC setup lines lintr flagged

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: b3521fb8a32933af5f1f14b5fa79468c9ab2b72e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:06:38 -0500
Commit message:

 Shiny: offer COSMIC v3.6 and v3.0 sets and a COSMIC version choice

The prediction tab lists the v3.6 SBS/DBS sets for each build, v3.6
Indel, and the v3.0 sets, labelled with version and build, and defaults
to v3.6 SBS for the import genome's build. The comparison tab adds a
COSMIC V3 version input (latest or 3.0) passed to compare_cosmic_v3().
Aetiology labels and #253's fallback to the bare name apply to every set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 788fb5032fc63679aeb8d6584ce8890bbffb431b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:05:12 -0500
Commit message:

 compare_cosmic_v3(cosmic_version =): pick a COSMIC catalogue by version

Implements ADR 0003 in compare_cosmic_v3(). A table of the shipped
catalogues (version, modality, sample type, build, object) replaces the
if/else chain. cosmic_version = "latest" uses the newest version with a
catalogue for the request: v3.6 for genome, v3.0 for exome. "3.0"
reproduces earlier results. A combination musicatk doesn't ship is an
error listing what it does ship; there is no fallback. Each call reports
the catalogue it used with message(), which replaces #253's exome warning
and Indel build message. Exome now also checks genome_build.

Docs: the v3.0 objects say they are v3.0 and frozen; the five v3.6
objects are documented and listed in _pkgdown.yml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 60cbc74643c7497232a36516f175ba036061552b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:02:43 -0500
Commit message:

 Restore the v3.0 COSMIC objects; ship v3.6 under versioned names

Per ADR 0003, cosmic_v3_sbs_sigs, cosmic_v3_dbs_sigs and
cosmic_v3_indel_sigs go back to COSMIC v3.0, byte for byte as on devel.
make_cosmic_v3_6.R now writes cosmic_v3_6_{sbs,dbs}_sigs_{grch37,grch38}
and cosmic_v3_6_indel_sigs, reading motif order from the v3.0 objects
without overwriting them. The unreleased cosmic_v3_{sbs,dbs}_sigs_grch38
are replaced by the versioned names. The v3.6 signature matrices are
identical to the ones #253 shipped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: a27b8525bddeddff1f2dc0d3c070e73086d07716
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:02:04 -0500
Commit message:

 Tests for versioned COSMIC objects and compare_cosmic_v3(cosmic_version =)

Reworks #253's tests for ADR 0003: the v3.0 objects stay v3.0, the v3.6
objects are new, and compare_cosmic_v3() picks a catalogue by version,
sample type, modality and build, reporting which one it used.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 2ad1dd89bd7b3f8327c0dfdc067d3eb154572d2e
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:01:03 -0500
Commit message:

 Accept ADR 0003: versioned COSMIC signature objects

The maintainer accepted the design on 2026-11-12 (#253).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 3e2ffc426827939da0a640a5a474b1056cda3efc
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:00:51 -0500
Commit message:

 Spec for finishing #253: versioned COSMIC objects (ADR 0003)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: c52575e34845fdba348a2f634c6962c3ef8f3d37
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-12 16:00:51 -0500
Commit message:

 Merge devel into feature/cosmic-v3.6

Brings in PRs E (#252) and H (#254). Conflicts were only the version and
NEWS: this branch's COSMIC section moves above devel's 2.7.15 and 2.7.14
sections as 2.7.16.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 9967143da4e38d014111dba704756dffa3107d9d
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-12 15:42:07 -0500
Commit message:

 Merge pull request #254 from campbio/fix/plotting

Plotting fixes (group H of #208) 
Package: musicatk
Commit: 4a351c647a44949cd326d78f26d9e5b73391272d
Author: Natasha Gurevich <nqg@bu.edu>
Date: 2026-11-12 11:16:27 -0500
Commit message:

 Propose ADR 0003: ship each COSMIC version as its own data objects

Updating cosmic_v3_* in place to v3.6 silently changes results for
existing scripts. The maintainer suggested keeping each COSMIC version
instead. This records the proposed design for review on #253: freeze the
v3.0 objects, add v3.6 under versioned names with the build explicit,
and add a cosmic_version argument that defaults to the latest version
with the requested catalogue. Status: proposed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 70079f18c74301c672e628faae31a196b85c0327
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:40:04 -0500
Commit message:

 Indent the threshold check as lintr expects

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 2a6e7cd5f2e914689343a34c0e4ee0273aacbe59
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:39:27 -0500
Commit message:

 Address /code-review of PR H

- Signature header boxes follow runs of equal colour values, so a
  color_variable whose values recur (e.g. "context") no longer stacks
  overlapping boxes; the test now checks the boxes don't overlap.
- plot_heatmap(subset_tumor =) stops clearly when no matching sample is
  in the model, instead of failing inside ComplexHeatmap.
- plot_cluster(group = "signature") uses .proportional_exposures().
- plot_exposures(threshold = NA) gives the threshold error.
- Label height uses is_indel; .samples_with_annotation() reads each
  column once.
- The #186 test restores an existing global annotation_text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: de28d9848d6323e184a187a8b92e10f1d00f1ec9
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:32:46 -0500
Commit message:

 Address spec review of PR H

- k_select() divides by sample totals with .proportional_exposures()
  too; with an all-zero sample it failed with "NA/NaN/Inf in foreign
  function call" (#183). Regression test added; the spec missed it.
- NEWS: an unnamed color_mapping used to error, not work; the
  zero-exposure error applies with proportional = TRUE.
- Spec: correct the claim about unnamed color_mapping, list k_select().
- Shorten a test name to 80 columns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: abf594b5c533489fe71b17a9bae04dc1ed2d0ecd
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:31:10 -0500
Commit message:

 Article: name SBS4/SBS7 and show subset_tumor in the heatmap section

Checked against the fix/plotting branch on the article's TCGA data
(1,614 samples): with per-signature z-scores, SBS4 and SBS7 are both
above average in 2 samples, SBS4 is high in lung and SBS7 in skin, and
SBS6/15/26 are high (z > 2) in 27, 5 and 14 samples, so the text holds.
subset_tumor now works (#175), so add an example.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 7ef74e7081e2189d6251b411440b9a81b48dc1f9
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:14:08 -0500
Commit message:

 NEWS and version 2.7.15 for PR H

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: bfa1ec7c45b17fb2ec55c8abf1a1096ec7a45c44
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:12:28 -0500
Commit message:

 Fix plotting bugs (#175-#184, #186, #95)

- plot_heatmap(subset_tumor =) matches values exactly in any sample
  annotation column, takes several values, names missing ones, and
  shows 'annotation' or the matching columns; before, it always
  failed (#175).
- plot_heatmap(scale = TRUE) z-scores each signature across samples,
  not each sample; constant signatures get 0 (#176).
- plot_signatures() fills the motif header boxes by name from
  color_mapping, with white text on dark fills; an unnamed mapping is
  named in motif order, a mapping missing values stops (#177).
- .pivot_signatures() uses a color_variable column name and matches a
  vector to motifs by name instead of recycling it (#178).
- plot_exposures() box/violin with group_by = "none" plots signatures
  instead of falling back to a bar plot (#179); threshold sets values
  below it to 0 instead of dropping rows (#184).
- plot_umap() colour limits include the largest exposure (#180), the
  centroid layer maps y to UMAP_2 (#181), color_by = "cluster" needs
  clust rather than annotation (#182), and it says to run create_umap()
  first when there is no UMAP (#183).
- .proportional_exposures() names samples with a total exposure of 0
  in create_umap(), plot_umap(), cluster_exposure(), plot_heatmap() and
  plot_exposures(), instead of failing later on 0/0 (#183).
- plot_signatures() tests !is.null(annotation), not
  exists("annotation_text"), which found global variables (#186).
- plot_cluster() uses aes() with .data instead of aes_string() (#95).

The custom color_variable test expected 16 header boxes; SBS96 has 32
contexts, so it now counts them from the table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: cf30c57d305c1b21976605cd895a018476fef17b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:12:28 -0500
Commit message:

 Put create_sbs192_table() docs back on create_sbs192_table()

PR E inserted .sbs192_table_name() between the roxygen block and
create_sbs192_table(), so make docs moved the block to the helper and
deleted man/create_sbs192_table.Rd. Move the helper above the block.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 065ea4e8c7f98afba8a234304590f531d90e2e9f
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:07:58 -0500
Commit message:

 Regression tests for PR H of #208 (#175-#184, #186, #95)

Each new test fails on devel: plot_heatmap subset_tumor and scale,
plot_signatures header colours and global annotation_text,
.pivot_signatures color_variable, plot_exposures box/violin and
threshold, plot_umap limits, centroid, cluster colouring and messages,
zero-exposure samples, and ggplot2 deprecations. is.ggplot() in the
tests becomes expect_s3_class() (#95).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: d7eccf56277c542a7a237ac845e0d7f8cf7dbbed
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 20:04:06 -0500
Commit message:

 Spec for PR H of #208: plotting fixes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: a2aa0738356bbd3c3b077e44551ccc5787dd6ebe
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-11 19:26:38 -0500
Commit message:

 Merge pull request #252 from campbio/fix/count-table-robustness

Fix count-table crashes and unclear errors (PR E of #208) 
Package: musicatk
Commit: 137894bc898628844c5f50c7ad37ea2f5abb9912
Author: Natasha Gurevich <nqg@bu.edu>
Date: 2026-11-11 13:41:25 -0500
Commit message:

 Version 2.7.14 and NEWS for COSMIC v3.6

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: a2f82c82f7c5a0c1e4e30fc97f6e38d2cbe93e1e
Author: Natasha Gurevich <nqg@bu.edu>
Date: 2026-11-11 13:41:25 -0500
Commit message:

 Shiny: genome build choice for COSMIC and GRCh38 signature sets

The comparison tab gets a genome build input, set from the genome the
variants were imported with when that is hg19 or hg38, and passes it to
compare_cosmic_v3(). The prediction tab offers the GRCh38 SBS and DBS
sets. COSMIC v3.4 split SBS22 and SBS40 into a/b/c variants, so add
labels for those to keep their aetiology in the app.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 7d3b66d5077aa8647c7992078317269f4c2c45e5
Author: Natasha Gurevich <nqg@bu.edu>
Date: 2026-11-11 13:41:25 -0500
Commit message:

 Explain the exome COSMIC v3.0 warning in the vignette

The vignette compares exome samples to COSMIC, which now warns that the
exome catalogue is v3.0. Say why, and when to use sample_type = "genome"
with genome_build instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 58f925cf07998a2a574e6bbf1b3b940de622bd75
Author: Natasha Gurevich <nqg@bu.edu>
Date: 2026-11-11 13:41:25 -0500
Commit message:

 Test compare_cosmic_v3() and check genome_build only for genome

genome_build was validated before the sample_type branch, so an exome
comparison stopped on a build it ignores, and NULL gave "argument is of
length zero". Check it only on the genome path, with one message for any
invalid value. The example passes genome_build = "hg38" because the
example data are hg38. New tests cover catalogue selection by build for
SBS and DBS, the single Indel catalogue, the exome warning, invalid
builds, and the shape and ids of the COSMIC objects.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 39054e8c45201721881e73c50b3d4f3d8b94a304
Author: Natasha Gurevich <nqg@bu.edu>
Date: 2026-11-11 13:41:25 -0500
Commit message:

 Rebuild COSMIC v3.6 objects with empty exposures

The v3.6 objects had a 1x1 NA exposure matrix, where the objects they
replace had an empty 0x0 one. The script now builds from the source tree
(pkgload::load_all) and reads its motif-order templates from data/, not
from an installed musicatk. The Indel model id no longer names GRCh37,
since COSMIC publishes one Indel catalogue for both builds. Signature
matrices are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: f3b4269f45e8a0d86e28598e01122c308a98b4ae
Author: Natasha Gurevich <nqg@bu.edu>
Date: 2026-11-11 13:41:14 -0500
Commit message:

 Update COSMIC signatures from v3.0 to v3.6

COSMIC v3.6 (May 2026) adds signatures (SBS 67 -> 101, DBS 11 -> 22,
Indel 17 -> 25) and revises existing ones. Add GRCh38-normalized SBS and
DBS objects and a genome_build argument to compare_cosmic_v3() so the
catalogue can match the build the variants were called on. The exome
catalogue stays v3.0, since COSMIC stopped publishing one, and
compare_cosmic_v3() warns about that. The Shiny app falls back to the
bare signature name for signatures it has no aetiology label for, instead
of showing "NULL". data-raw/make_cosmic_v3_6.R rebuilds the objects.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 29218c04792c40617cdd4e22fc0d2e80aaa8f4d3
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:26:26 -0500
Commit message:

 Address /code-review of PR E

- NEWS: a second SBS192 build already stopped before ("Table names must
  be unique"); only the message and the overwrite warning change.
- One .sbs192_table_name() helper checks strand_type and names the
  table, used by build_standard_table() and create_sbs192_table().
- Errors name their argument ('strand_type', 'to_comb').
- Drop the now-unneeded empty-vector guard around rc() in DBS78, and a
  local variable that shadowed base::missing().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 6385b44505e6ec3bdf4a02acf14d57455e763b52
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:23:54 -0500
Commit message:

 Address spec review of PR E

- Tests: hard-coded rc() results, including lowercase and IUPAC codes;
  check that the combine_count_tables() error lists the current tables;
  load data into the test environment.
- NEWS: say that rebuilding SBS192 without overwrite used to replace the
  table silently and now stops.
- Docs: fix "compliment"; clearer @return for build_standard_table().
- combine_count_tables() says "none" when there are no tables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: b713cf6a50a6855545f9453aa9c6ecf989f7971d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:20:59 -0500
Commit message:

 NEWS and version 2.7.14 for PR E

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 32d83ea9c758cafef6959ddbe5c002b321240628
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:20:52 -0500
Commit message:

 Fix count-table crashes and unclear errors (#132, #136, #137, #52, #17)

- rc() is vectorised with Biostrings::DNAStringSet, so an empty vector
  gives an empty vector. DBS78 crashed when no ref needed
  reverse-complementing (#132, #52). This also makes rc() much faster
  (part of #138).
- build_standard_table(): SBS192 stops clearly without strand_type
  (#136); the overwrite check uses the table's real name,
  SBS192_Trans or SBS192_Rep; every build message names the table it
  creates, so an alias like "SNV96" says the table is 'SBS96' (#17).
- combine_count_tables() names the missing tables; it called setdiff()
  with one argument (#137).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 33e81a4909e1e7e8ae4aa7fb3f6642598f6d4e57
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-11 07:20:22 -0500
Commit message:

 Regression tests for PR E of #208 (#132, #136, #137, #52, #17)

Each fails on devel, on its assertion or on the rc(character(0)) crash
that #132 and #52 report.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 80fd6a2e235ada5e525d20a5c3303fd4750dc275
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-10 21:36:45 -0500
Commit message:

 Merge pull request #247 from campbio/fix/diff-analysis-clustering

Fix differential analysis and clustering statistics (PR G of #208) 
Package: musicatk
Commit: 131ae80d50d0a1bb206eca5248174521a4710f84
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 20:44:59 -0500
Commit message:

 Build condition messages before stop()/message() (BiocCheck NOTE)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 7440593daa40b3e2dbe3c08a0ad724437e566f95
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 20:32:25 -0500
Commit message:

 Address /code-review of PR G

- k-means: seed = 1 via withr::with_seed() and nstart = 10, so the
  default clustering repeats and leaves the caller's RNG alone, as the
  fuzzy clustering it replaces did (maintainer's decision). k_select()
  takes seed = 1 and runs k-means with 10 starts.
- fanny: iter.max defaults to NULL, meaning 500 for fanny, which didn't
  converge in 10; kmeans and hkmeans keep 10.
- cosine distance: clamp rounding below zero.
- glm.nb tables carry a "reference" attribute, so the plot labels bars
  " vs "; NA FDRs are left out with a message.
- k_select() validates n.
- NEWS: say two-comparison wilcox FDRs change.
- Log the k_select()/cluster_exposure() distance mismatch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 </pre>
    </div>
  
    
Package: musicatk
Commit: ab9022c322ed5cdba9cb4f423f4884e0720606fe
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:56:12 -0500
Commit message:

 Address spec review of PR G

- glm.nb stops when a group is named Intercept or ANOVA, which would
  duplicate column names and plot the wrong ANOVA FDR.
- Docs: list the distances hkmeans and clara accept, say k-means uses
  one random start, and say k_select() needs three samples.
- NEWS and spec: hclust's dis.method acted indirectly before (#173).
- Test uses the exposures<- accessor instead of slots.
- Log three pre-existing findings in dev/agent-log.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: bc13430e15e6712986f20bc64fb2ebd78e989c3b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:51:45 -0500
Commit message:

 Lint: restructure the threshold check

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: c3fee5b1c5b7bd2b01d3bcd5b559bda585bb2bc5
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:40:49 -0500
Commit message:

 NEWS and version 2.7.13 for PR G; note the Shiny k-means change in the spec

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: f8be04a29968e8ace66b32293ccf439667dcb72c
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:40:33 -0500
Commit message:

 Shiny: offer only Euclidean distance for k-means clustering

cluster_exposure(method = "kmeans") now stops for other distances.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 7ab7735ffde4b5fccf0738ba2e982573c98ca2ca
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:40:33 -0500
Commit message:

 Fix clustering: real k-means, fanny, hclust and cosine distances

- method = "kmeans" runs stats::kmeans() and needs euclidean; the
  fuzzy clustering it ran before is now method = "fanny" (#34).
- hclust passes the dissimilarity matrix with isdiss = TRUE, so
  dis.method is used (#173).
- dis.method = "cosine" is 1 - cosine similarity; philentropy returns
  the similarity.
- k_select() lowers n to the number of samples minus one, with a
  message, and needs at least three samples (#185).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: d67481d74eb41ef5af0f7e985b0ea2e24ec88b55
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:40:33 -0500
Commit message:

 Fix glm.nb and wilcox differential analysis; redesign its plot

- glm.nb: read coefficients by name, label the reference group's
  columns Intercept(...), and BH-adjust each non-reference group's
  p-values across signatures. Each (fdr) column held the next group's
  adjusted p before (#169).
- wilcox: any number of comparisons, numeric p-value and fdr columns,
  BH within each comparison. Pr(>|z|) and (fdr) become p-value and fdr,
  matching kruskal (#170, #171).
- Groups follow the annotation's factor levels.
- plot_differential_analysis() plots -log10(FDR) for any method, read
  from the table's columns, with a threshold line. analysis_type and
  samp_num are ignored with a warning (#174).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 60cbfde60bcc385b3daf769648ef0c6b12e1a33d
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:38:07 -0500
Commit message:

 Regression tests for PR G of #208 (#169, #170, #171, #173, #174, #185, #34)

Each fails on devel: on its assertion, on the crash its issue reports
(#170, #185), or on the option or argument default the fix adds
(fanny, plot_differential_analysis without analysis_type).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: d72527c6463b8e1020cde44761ced4bf1f78a4a4
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 19:35:22 -0500
Commit message:

 Spec: add the cosine-distance fix found while testing #173

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 9ad4ed2292076871eae282b61797e950c5a94644
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-10 17:44:46 -0500
Commit message:

 Spec for PR G of #208: differential analysis and clustering

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: e07c07a7a9b550b22044f55cd60aabc88ce45415
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-10 06:50:53 -0500
Commit message:

 Merge pull request #246 from campbio/fix/discovery-prediction

Discovery and prediction correctness (PR F of #208) 
Package: musicatk
Commit: bee449dedf100525e8240bd90f09ddfe5ea8fab0
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 20:35:06 -0500
Commit message:

 Drop suppressMessages() from the new code (BiocCheck NOTE)

compare_k_vals() leaves samples with no mutations out once, up front,
with one message, so the bootstrap fits don't repeat it; the first,
unstored pass of auto_subset_sigs() asks for no message instead of
suppressing it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 44a56ccc1f95101954471005b47f7b95f4c174bf
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 19:49:58 -0500
Commit message:

 Leave zero-count samples out of exposures; address /code-review (#143)

Keeping samples with no mutations as all-zero exposure columns made
create_umap(), cluster_exposure() and proportional plots fail, since
they divide each sample by its total (0/0). The maintainer chose to
leave such samples out of the fit and the exposures, as before, but
now with a message naming them. generate_result_grid() and
compare_k_vals() match samples by name, so they no longer fail on
them.

From /code-review of the branch:
- Per-group fits in generate_result_grid() and auto_predict_grid() use
  an object without stored results, so earlier results aren't subset
  and copied for every group and k.
- The annotation-to-groups code shared by both is one helper,
  .annotation_groups().
- An error while fitting one group of the grid names the group.
- combine_predict_grid() puts the combined signatures in the motif
  order of the models it combines, which predict_exposure() now puts
  in the count table's order (#142).
- discover_signatures() drops an identity match() before scaling.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 9ddfb59a107168a0edef1cb89e0c89fedce2ff6b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 19:23:41 -0500
Commit message:

 Address spec review of PR F

- Stop with a clear error when the annotation column given to
  generate_result_grid() or auto_predict_grid() has no values; the grid
  stored nothing and auto_predict_grid() failed in
  combine_predict_grid().
- Give duplicated signature motif names their own error; the mismatch
  message listed no motifs for them.
- compare_k_vals() gives the "no mutations" message once, for the
  original table, not again for every bootstrap fit.
- NEWS: the new seed argument and seeded-by-default LDA prediction, and
  signatures stored in the table's motif order.
- Vignette: only predict_exposure() is documented as leaving the
  caller's RNG state unchanged; discover_signatures() relies on
  topicmodels and NMF for that.
- Tests: #149 checks that no fit starts before the error; #143 checks
  the grid's zero column; seeds are set with withr::local_seed(); the
  RNG-state check fails cleanly on devel; compare_k_vals() uses k = 2..3
  so the plot doesn't warn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 0a25a443d17c83b77574ce7859b5199948c16637
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 18:48:15 -0500
Commit message:

 NEWS, version 2.7.12 and vignette for PR F

The vignette's note on reproducibility says discover_signatures() and
predict_exposure() take a seed, instead of telling users to wrap calls
in withr::with_seed().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 808b62416326561b3c8905384dd2b3cbdd77b8c6
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 18:48:15 -0500
Commit message:

 Fix discovery and prediction correctness bugs (PR F of #208)

- generate_result_grid() uses its annotation argument instead of a
  hard-coded Tumor_Type column, and names per-group models
  _, so groups no longer overwrite each other
  (#140). Each model id is chosen before fitting and the model fetched
  by it, so a re-run stores the new fit as lda2.1 instead of silently
  keeping the old lda2 (#141). auto_predict_grid() does the same for
  its per-group models.
- predict_exposure() matches signatures to the count table by motif
  name, and stops when the motifs differ; decompTumor2Sig is limited to
  SBS96 tables, whose motif names it can convert (#142).
- Samples with no mutations are left out of the fit and get zero
  exposures, with a message, instead of being dropped silently;
  discovery needs two samples with mutations (#143).
- auto_subset_sigs() computes its first, all-signature pass without
  storing a model, so any result_name works (#145); annotation values
  are used as character (#146); no signature passing the thresholds
  gives a clear error (#147).
- One .unique_model_id() helper replaces three copies of the model-id
  de-duplication, which broke after ten repeats (#148).
- predict_exposure() and auto_predict_grid() take seed = 1, applied
  with withr::with_seed() (ADR 0002); one-sample LDA prediction keeps
  the prior theta instead of fitting a Dirichlet to one sample, which
  warned 100 times; the grid's reconstruction error is documented
  (#152).

Fixes #140
Fixes #141
Fixes #142
Fixes #143
Fixes #145
Fixes #146
Fixes #147
Fixes #148
Fixes #152

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 </pre>
    </div>
  
    
Package: musicatk
Commit: 5a28506e5fae4de9537ecd10978249f481509ca8
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 18:48:04 -0500
Commit message:

 ADR 0002: import withr to seed exposure prediction

predict_exposure() gets a seed argument (#152). BiocCheck reports any
set.seed() call in package code as a WARNING, so the seed is set with
withr::with_seed(), which also restores the caller's RNG state. withr
moves from Suggests to Imports; ggplot2 and testthat already depend on
it. Accepted by the maintainer on 2026-11-09.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 0eb6ce8748e21507778ae455b36bd13862f5ee5a
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 18:47:58 -0500
Commit message:

 compare_k_vals: check error_type first; handle zero-count samples (#149, #143)

An invalid error_type only gave a message deep inside the error
calculation, after every fit had run, and compare_k_vals() returned NA.
It is now checked before any fit and stops with an error.

Samples with no mutations made the bootstrap call rmultinom() with NaN
probabilities ("NA in probability vector"): `prob[prob == NaN]` never
matches. They now stay at zero in each bootstrap table, and the
proportional reconstruction error counts their proportions as 0 rather
than NaN. The rest of #143 is in the discovery and prediction commit.

Fixes #149

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 026800f45e326dc11443336a3cb672b49f9e9bde
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 18:47:52 -0500
Commit message:

 Keep .cosine() a matrix for one signature (#162)

.cosine() dropped its result to a vector when either input had one
column, so compare_cosmic_v2() and the other comparison functions failed
for a one-signature model.

Fixes #162

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 1781d9d552899c17793a07df60a9abbd356ccb8b
Author: Joshua D. Campbell <joshua.d.campbell@gmail.com>
Date: 2026-11-09 17:01:12 -0500
Commit message:

 Spec: discovery and prediction correctness (PR F of #208)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 
Package: musicatk
Commit: 80350b9ed785c61d7220e1935db09ecd81ad84e5
Author: Joshua D. Campbell <camp@bu.edu>
Date: 2026-11-09 15:32:29 -0500
Commit message:

 Merge pull request #245 from campbio/fix/example-data

Rebuild the example data from GDC hg38 samples with strong signatures (#217, #238) 

</div> </div>