NEWS
quaqcr 1.0.4 (2026-05-19)
CRAN submission preparation
DESCRIPTION: removed redundant "in R" from the title.
DESCRIPTION: expanded acronyms (ATAC-seq, NGS, ChIP-seq) and added a
reference to the methods paper in the form
<doi:10.1093/bioinformatics/btae649>.
quaqc(): replaced the cat() call that printed the program help with a
message() call so that it can be suppressed by the user.
footprint() and pileup() examples: switched from \dontrun{} to a
guarded \donttest{} that no-ops when the quaqc binary or a sample BAM
is unavailable.
quaqcr 1.0.3
CRAN submission preparation
- Reverted the
footprint() and pileup() examples to \dontrun{} because
they additionally require a user-supplied BAM file that the user must obtain
themselves; the previous \donttest{} wrapper caused
R CMD check --run-donttest to fail. The quaqc() example continues to use
\donttest{ if (nzchar(Sys.which("quaqc"))) }.
- Added
cran-comments.md to .Rbuildignore.
quaqcr 1.0.2
CRAN submission preparation
- Added
SystemRequirements: quaqc to DESCRIPTION.
- Moved
options(quaqc.bin = ...) initialisation into .onLoad() in R/zzz.R.
- Migrated
inst/CITATION from deprecated citEntry()/personList() to
bibentry()/c(person(), person()).
- Updated
.Rbuildignore to exclude development files (CLAUDE.md, .claude/).
- Removed empty
merge_reports() stub (R/merge.R).
- Converted
\dontrun{} to \donttest{ if (nzchar(Sys.which("quaqc"))) } in
examples for quaqc(), footprint(), and pileup().
- Fixed typo
genereal → general in DESCRIPTION.
quaqcr 1.0.1
Bug fixes
parse_quaqc(): input validation now checks that all required JSON keys are
present and reports which are missing, rather than accepting any subset of
valid names.
parse_quaqc(): non-list input now produces a clear error message
('json.text' must be a list).
parse_quaqc_file(): the length/type guard used && instead of ||,
allowing numeric length-1 inputs or character length->1 inputs to bypass
validation and crash inside gzfile().
parse_quaqc(): fixed typo fagment_histogram_max → fragment_histogram_max
in the params key vector; the misspelled key was silently absent from
$params$integer on every parsed report.
parse_quaqc(): removed tss_histogram_max from the params key vector; this
key is not emitted by quaqc (only tss_histogram_size is), so it was
silently missing from every parsed report.
quaqc(): calling quaqc() with no arguments (to print help) would error
with object 'version' not found; fixed by returning just the help text.
quaqc(): when json is a file path, the parsed report was discarded and
NULL returned; the file connection was also leaked on error. Both issues
are fixed.
quaqc(): when peaks, tss, target.list, or blacklist was supplied as
a GRanges object, the temporary BED file's on.exit(unlink(...)) handler
lacked add = TRUE; passing more than one GRanges argument would leak all
but the last temp file.
quaqc(): GRanges objects are 1-based inclusive; the BED files written from
them now correctly use 0-based half-open coordinates (start - 1L).
quaqc(): verbose = NULL caused an error (argument is of length zero);
the verbosity block now guards against NULL.
melt_reports(): calling with a quaqc object containing failed reports
caused a crash on NULL subscript-assignment inside the get_* helper
functions; failed reports are now filtered out automatically (with a message).
melt_reports(): histogram and TSS-pileup helpers used 1:nRow[i] to build
row indices, which produces c(1, 0) when a sample has zero rows; replaced
with seq_len(nRow[i]) throughout.
melt_reports(): TSS background normalisation could call rep(0, n) with a
negative n; clamped to max(0L, n).
melt_reports(): dividing TSS depth by nranges when nranges is 0 or NA
produced Inf/NaN; guarded with a fallback to 1.
melt_reports(): use.basename = TRUE failed on R < 4.0 because
data.frame() converts character columns to factors by default in those
versions; the Sample column is now explicitly coerced to character before
basename() is called.
pileup(): passing tss in ... previously issued a warning then crashed
with a confusing "formal argument matched by multiple actual arguments" error
from R; it now stops with a clear message.
footprint(): the unreachable tss-in-... warning (R errors before the
body runs due to ambiguous partial matching against tss.size/tss.qlen/
tss.tn5) has been removed.
Other
- Added a
testthat test suite covering parsing, all 13 melt_reports()
sections, validators, print snapshots, and input-validation paths.