NEWS.md
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.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).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.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.