Release 1.3 0#167
Merged
Merged
Conversation
DEVLOG_2026-06-08-09.md and DEVLOG_2026-06-11-12.md covered a continuous, sequentially-numbered set of entries (1-60) split across two files for no strong reason. Combine into DEVLOG_2026-06-08-17.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
With config_optim$profiled = TRUE, nlopt is now consistently faster than builtin for full-covariance PLN (2-4x on n,p in the hundreds), so it becomes the default again; builtin remains available and still finds a slightly better optimum, an advantage that grows with p. For PLNnetwork, switch the default to the already-benchmarked but never-wired-in combination backend="builtin" + maxit_ve=1 + inception_niter=5, which consistently beats plain nlopt on ELBO at the same speed (+34/+123/+676 loglik on trichoptera/barents/oaks). Update two stale expect_output() tests that hardcoded "builtin optimizer" as PLN's default trace message. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The per-species binomial GLM in compute_ZIPLN_starting_point() is a
coarse starting point, not a final estimate, and routinely separates
on small samples ("algorithm did not converge" / "fitted
probabilities numerically 0 or 1"). Same situation already handled
with suppressWarnings() for an equivalent call in import_utils.R.
No test depended on these warnings (no expect_warning() in
test-zipln*); suite goes from WARN 12 to WARN 0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the placeholder (eval=FALSE) README with a quarto document that actually runs and renders the package's main models (PLN, PLNLDA, PLNPCA, PLNnetwork, PLNmixture) on the barents data set (n=89, p=30 — fast enough to be a copy-pasteable demo), with one illustrative plot per model. Stability selection and PLNmixture smoothing are deliberately skipped to keep the render fast. Caching is enabled (cache=TRUE) but cache.lazy=FALSE is required: knitr's lazy-load cache promises don't survive R6 model objects and silently corrupt across chunks (surfaced as a bogus "non-conformable arrays" error from an unrelated active binding during cache writes, not an actual bug in PLNPCA's variational means). Also complete the bibliography (PLNLDA, PLNnetwork's graphical lasso, PLNmixture, and the barents data set citation), and drop the now-orphaned pre-quarto README figures. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Illustrates the zero-inflation parameterizations (single/row/col/ covariate-dependent), inspects fitted values and per-site zero- inflation probabilities, and fits a sparse ZIPLNnetwork. Uses the 30 most abundant taxa of the microcosm data set (n=880, still ~80% zeroes) to keep the vignette fast to compile. Stability selection is mentioned but skipped, consistent with the PLNnetwork vignette's heavier example. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Re-benchmarked builtin vs nlopt on oaks under the current codebase: the oscillatory behaviour that previously made builtin worse (-241 loglik, documented mid-June) is gone, likely fixed by the joint (M,psi,R) Newton VE-step and the subsequent CRTP refactoring. builtin now wins by +300 to +384 loglik across the whole penalty path (checked point-by-point, not just at the BIC-best model, with nearly identical penalty grids between backends), at a 3.6x time cost on this dataset. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename the second "zi_param" chunk (duplicate label, would break
knitr) to "zi_coef_B0"/"zi_coef_B".
- Fix copy-pasted caption ("zero-inflation probability $B$" on the
count-coefficient chunk).
- Disable row clustering on the heatmaps (4 sites, ordering by
dendrogram adds noise; columns/species still clustered).
- Harmonize myPLN's formula to ~0 + site for consistency with the
ZIPLN calls.
- Drop the no-op config_optim = list() in the ZIPLNnetwork chunk now
that builtin is the default backend, and note why.
- Add pheatmap to Suggests (used by the vignette, was missing).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
vertex.frame.color = NA must be passed as a plot() argument, not set as a vertex attribute via V(G)$frame.color <- NA: as an attribute it triggers "vertex attribute frame.color contains NAs. Replacing with default value black", even though NA is igraph's own documented way of requesting no frame (and the replacement to black was silently shipping borders nobody asked for). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove specific dataset/loglik/timing citations (e.g. "n=880, p=259: +96 loglik for 3.4x more time", the trichoptera/barents/oaks benchmark table) from @param docs in PLN_param(), PLNPCA_param() and PLNnetwork_param(). These numbers justify default choices to us as developers but require knowing internal benchmark datasets the user has no reason to know; the qualitative recommendation is kept. The detailed numbers remain in NEWS.md, DEVLOG and persistent memory. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- predict.ZIPLNfit() was missing a @return tag (inconsistent with predict.PLNfit() and every other documented method). - spelling::update_wordlist(): added 38 legitimate words flagged by the spell checker (citation authors, acronyms, British spellings, Greek letters), removed 10 stale entries no longer present in the docs (including a leftover "mutivariate" typo entry that masked an already-fixed typo). Full devtools::check(cran = TRUE): 0 errors, 0 warnings, 1 NOTE (non-portable compilation flag injected by the local R installation's Makeconf, not by the package's own src/Makevars -- not actionable). spelling::spell_check_package(): clean. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Group related items (backend defaults, quality/speed improvements, bug fixes) instead of one bullet per change, to keep the entry readable as a release-notes summary rather than a development log. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This was referenced Jun 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See TODO in #166