exprs assay guidance, pkgdown badge branch, Stargazers icon) and
seq_len() uniformity in test fixtures.0.99.19.exprs (not logcounts); the shared
analysis-matrix dispatcher recognizes exprs as log-ready (prevents a
double-log transform). BRCA vignette shows real-data code only;
fallback lives in an internal helper.0.99.18.fetch_gse20685() per review: drop the redundant BiocFileCache
layer (GEOquery caches the series matrix itself) and the cache
parameter; unify ExpressionSet/SummarizedExperiment handling with
as(, "SummarizedExperiment"). File goes from 226 to 178 lines; the
remaining code is strictly probe-to-gene collapse and survival-metadata
extraction.exprs (not logcounts, which means
log-transformed sequencing counts); the shared analysis-matrix dispatcher
now recognizes exprs as log-ready alongside logcounts/vst, preventing
a double-log transform. Pinned by cross-consumer tests.0.99.17.withr::with_seed() (no global RNG side
effects; clears BiocCheck set.seed WARNING) and use seq_len()
(clears 1:... NOTE) in .brca_fallback_cohort().0.99.16.fetch_gse20685() handles RangedSummarizedExperiment from newer
GEOquery (assay/rowData/colData branch) with sanitization-tolerant
column matching; all processing wrapped in tryCatch → NULL fallback;
download bounded via withr timeout (Bioconductor Appendix C). Fixes
r-universe source ERROR.case-study-brca vignette shows real-data code only; synthetic generator
moved to internal .brca_fallback_cohort(); data-source provenance note,
inline deaths/events-per-parameter/CV statistics, and References
(Li et al. 2010) added.case-study-impact vignette: fixed missing cutpoint in
validate_external() demo; corrected stale offline-data claim.0.99.15.case-study-brca vignette now uses real GSE20685 data downloaded from GEO
via GEOquery and cached via BiocFileCache, with a synthetic offline
fallback. Added fetch_gse20685() helper (R/geo_utils.R).0.99.14.isTRUE(vector) filter in R/design_audit.R (pairwise_table$redundant
vector) that caused redundant_variable flag and dropped_vars to be
empty on r-universe checks; restore design_audit redundancy detection
(3 test failures → 0). Bump to 0.99.13.for-loop refactor (BiocContributions#168, DarioS): replaced all
for loops with *apply/Reduce/vectorized idioms across R/,
inst/report_template.Rmd, vignette case-study-confounder-audit.Rmd and
the testthat helpers — 36 loops total, including the cited
design_terms example (now vapply+Reduce and t shadow fix);
bump to 0.99.12.NEWS.md stale inst/script → inst/scripts and qualify 3 bare
plot() as graphics::plot(); bump to 0.99.11.DataFrame qualification (S4Vectors::DataFrame in all
vignette colData constructions) and enforce LF line endings via
.gitattributes.setNames import (stats::setNames, R CMD check NOTE → OK on
linux/macos/windows).0.99.7 methods fix is stable (R CMD check
0 WARNINGS).methods in Imports (re-add after over-trim in 0.99.6 that caused
R CMD check WARNING: '::' import not declared from 'methods').Imports (stats/graphics removed, Biobase dropped from
Suggests), removed empty inst/extdata, renamed inst/script →
inst/scripts per Bioc convention, added package-level ?rnaSentry
man page, synced remaining vignette title: with numbered
VignetteIndexEntry, and fixed CRLF → LF.VignetteIndexEntry, made GEO demo
conditionally evaluated (requireNamespace("GEOquery")) with
BiocFileCache note, fixed inst/script to write to tempdir() (not
inst/extdata), and removed remaining c()-growth / 1:n nits.1.–6. for
browseVignettes() ordering, removed bundled GEO data from inst/extdata
in favour of GEOquery (see inst/scripts/repro_gse20685.R; vignettes now
use synthetic cohorts offline with GEOquery example eval=FALSE),
added Positioning and Prior Art to introductory vignette, replaced 2
vectorizable for loops with d[terms] <- cd[terms] assignment, and
switched vignette colData constructions to S4Vectors::DataFrame.setup collision with inst/report_template.Rmd
that caused vignette rnaSentry.Rmd to fail during R CMD build (renamed
6 vignette setup chunks to unique labels; set render_report = FALSE in
the main vignette's pipeline call).Description field in DESCRIPTION to meet BiocCheck's 3-sentence
minimum.inst/CITATION (no preprint/publication with DOI yet; eliminates
BiocCheck WARNING).suppressWarnings() calls with
withCallingHandlers(..., warning = function(w) invokeRestart("muffleWarning"))
to eliminate the BiocCheck suppressWarnings NOTE while preserving the same
graceful-failure behavior in survival model fitting.getting-started: the exact CSV -> SummarizedExperiment
bridge for your own data (read counts.csv + clinical.csv, intersect
sample IDs, load_counts(), design_audit(), then run_rnaSentry()).
README gains the same block under "Getting started with your own data".ci branch (push or manual dispatch) so that main holds only
package code, per the Bioconductor submission requirements; the
case-study vignettes are live on the site.inst/extdata/gse20685_case_study.rds, a
3000-gene x 327-sample subset of GSE20685 (Li et al., 2010; Affymetrix
GPL570) with overall-survival metadata, built via
validation/repro_gse20685.R in the GitHub repository.case-study-brca (full pipeline on the
bundled breast-cancer subset), case-study-confounder-audit (planted
batch/region redundancy recovered as a minimal design), and
case-study-small-cohort (the events_per_parameter guardrail and
fold-level instability).case-study-brca; batch- and
region-colored PC1-PC2 scatters in case-study-confounder-audit; an
external-cohort Kaplan-Meier split in the main vignette; and a per-fold
cross-validated concordance stripchart in case-study-small-cohort.case-study-impact adds a master impact table
across the four failure modes (wrong direction, confounded design,
underpowered discovery, false transfer) plus the reproducible
C + C_rev = 1 invariant. The naive tiers are scripted inline (manual
univariate screening, default-convention concordance, unadjusted design)
and build fully offline.CONTRIBUTING.md and NEWS.md.withr::with_seed() in
build_signature() / run_rnaSentry(): the documented seed argument is
still fully reproducible, but the caller's RNG state is left untouched
(previously a set.seed() call leaked into the session).R (>= 4.5.0) to track the Bioconductor 3.21 devel
build.build_signature() and run_rnaSentry() examples are now self-contained
and runnable (\donttest).build_signature() and run_rnaSentry() gain a BPPARAM argument
(Bioc-native, BiocParallelParam). Cross-validation stays strictly
serial by default (BPPARAM = NULL); parallel evaluation is opt-in and
only engaged when a BiocParallelParam object (e.g.
BiocParallel::SnowParam(2)) is supplied.seed
continues to scope all fold partitioning inside withr::with_seed(), so
per-fold evaluation is deterministic and a parallel run is bit-identical
to the serial run (pinned by dedicated tests in test-build_signature.R).BiocParallel is a Suggests-only dependency: all calls are
namespace-qualified behind a requireNamespace() guard, so the package
works unchanged on installations without BiocParallel.validation/simulate_study.R) gains a power
analysis of external-cohort transfer: two signal tiers calibrated to
effective concordance 0.608 / 0.654 show transfer power monotone in
external event count, < 0.30 at ~35 events (the small-cohort trap), and
= 0.80 at ~300 events for the moderate tier. All 15 simulation targets pass.
possibly_log_scaled (detects pre-logged data stored as
counts), events_per_parameter (warns below ~5 events per signature
gene), load_counts() intake audit (duplicate samples, non-integer counts,
empty rows, Ensembl/non-syntactic IDs) with a flag ledger carried into the
rendered report.run_rnaSentry() is single-use per session and refuses a
second run until lock_signature(sig, lock = FALSE) releases the lock,
preventing silent gene-set re-selection after survival analysis.validation/simulate_study.R),
real-data face validity (validation/repro_gse20685.R), and a live GEO
cross-cohort run (GSE31210 -> GSE50081, validation/repro_live_geo.R),
including the documented CV-optimism (selection-leakage) finding.reverse = TRUE
(higher score = higher hazard), pinned by parity tests and the
C + C_rev = 1 invariant.